算法养成:弱鸡大学生浅谈c++stl

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44196094/article/details/102526982

前言

弱鸡大二学生,一意孤行学算法半年,首次写博客,欢迎各位大佬指教。今天想谈谈c++比较常用,好用的stl
如果想看大佬可移步至AcWing分享。

vector:可变数组

vector这个真的是个好东西,有重载各类运算符,离散化神器。
各类方法:
vector<类型> v;
v.push_back(x);//在尾部插入x
v.pop_back(x);//从尾部删除一个元素

set/map :平衡树(无重复)

set <类型>s;
s.insert(x);//插入
s.erase(x);//删除
遍历
for(auto x:s)//x一定是有序的
map<类型,类型> mp;
map最诱人的是什么呢,下面给大家演示一下
map<string,int> mp;
mp[“mpnb”]+=1;//这句话即使"mpnb"不存在也不会炸,他会帮你初始化为0,然后cout<<mp[“mpnb”]<<endl;//可以直接访问
当然map也可以用for(auto x:mp)访问

priorty_queue:堆

堆用起来有多爽就不必我多说了吧。
priority_queue<类型> heap//大根堆,类型必须重载小于号
priority_queue<类型,vector<类型>,greater<类型>>//小根堆
heap.top()
heap,pop()
heap,push(x)

最好用的几个stl就介绍到这里了,想要熟练掌握还是要多刷题。虽然自己也是新手但还是想推荐大家一些刷题路线,萌新学会c++之后可以先刷pat乙级,然后可以买本《算法竞赛进阶指南》好好琢磨。(当然精力充沛可以同时进行)算法竞赛进阶指南可以移步至acwing,y总讲的是真的好。还有就是学算法一定要坚持到底,千万不要半途而废,好,祝大家早日acm那个牌牌。。

猜你喜欢

转载自blog.csdn.net/qq_44196094/article/details/102526982
今日推荐