今天发现太久没写代码我有些STL用法都生疏了,顺便今天借此总结一下。(坑很大,留着以后慢慢填)
1.priority queue
我感觉这个还是很常用的,复杂度为O(log n)的一种维护最值,可以进行插入和弹出操作的一种数据结构。
具体的用法如下:
1 #include<queue> // 开库 2 priority_queue<int(类型)>a(队列名称) 3 a.push(t)//把t插入a 4 a.pop()//把a的队首排出 5 a.top()//查询a的队首 6 a.empty()//bool 类型判断a是否为空
另外很多题中是需要重定义运算符的具体写法如下
1 struct node 2 { 3 int p; 4 friend bool operator < (node x, node y) 5 { 6 return x.p < y.p; 7 } 8 }
2.vector
是一种可以动态改变大小的数组。
1 #include<vector>//开库 2 vector<int>a//开vector 3 a.size()//vector大小 4 a.empty()//判断是否为空 5 a.push_back(t)//末尾加t 6 a.pop_back()//末尾删除元素 7 a.begin()//开始指针 8 a.end()//末尾指针 9 a.front()//第一个元素 10 a.back()//最后一个元素
对于vector的遍历,可以采用如下方法
for(int i=0; i<a.size(); i++)
3.set
我一直没怎么写过set,所以在此也自学一遍。
其实和其他的STL操作很相似
1 #include<set>//开库 2 set<int >a 3 a.begin()//返回set容器的第一个元素 4 a.end()//返回set容器的最后一个元素 5 a.clear()//删除set容器中的所有的元素 6 a.empty()//判断set容器是否为空 7 a.max_size()//返回set容器可能包含的元素最大个数 8 a.size()//返回当前set容器中的元素个数 9 a.count(t)//判断t在a中出现几次 10 a.erase(t)//删除键值为t的数 11 a.insert(t)//将t插入a
剩下的干脆以后再说好啦QAQ
原文地址:https://www.cnblogs.com/qmcp/p/9410415.html
时间: 2024-10-13 16:28:04