![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM--STL
ACM--STL
「已注销」
“没有人能把你变好,
时间和经历只是陪衬。
支撑你变得越来越好的,是你坚强的意志、修养、品行,以及不断的反思和修正。”
展开
-
unordered_set unordered_multiset unordered_map unordered_multimap
unordered_set unordered_multiset unordered_map unordered_multimap特性unordered_set/unordered_multiset性质和set/multiset一样,只是不支持lower_bound()操作,但是它的erase(), []的时间复杂度为O(1),即不能实现查找操作,但是增删改减的时间复杂度降低unorered_map/unordered_multimap也是类似,同上...原创 2020-10-07 00:45:51 · 112 阅读 · 0 评论 -
vector
vector1.初始化① 初始化一个不定长容器vector<int> a;② 初始化一个长度为10的容器vector<int> a(10);③ 初始化一个长度为10的容器,每个元素赋值为-1vector<int> a(10, -1);④ 把a数组复制到vector内int a[2] = {1, 2};vector<int> f(a, a + 2);⑤ 把vector a复制到vector中vector <int> a原创 2020-10-07 00:45:20 · 50 阅读 · 0 评论 -
string
string初始化// 初始化一个stringstring str;str = "abc";// 复制一个strstring s(str);// 按要求复制一个strstring ss(str.begin(), str.begin() + 2);求长度(时间复杂度为O(1))str.size();判空(时间复杂度为O(1))str.empty();清空str.clear();随机访问string a;str.front(); // 取第一个字原创 2020-10-07 00:44:42 · 48 阅读 · 0 评论 -
stack
stack1.初始化① 初始化栈stack <int> s;② 复制一个栈stack <int> ss(s);2.求长度(时间复杂度为O(1))s.size();3.判空(时间复杂度为O(1))s.empty();4.清空stack <int> s;s.push(1);s = stack <int> (); // 把一个空的queue赋给q即可5.取栈顶s.top();6.删除元素/插入元素stack <in原创 2020-10-07 00:44:11 · 63 阅读 · 0 评论 -
set/multiset
set/multiset特性 set保证出现在set内的元素只出现一次,且按照字典序从小大到大排序初始化① 初始化一个集合set<int> S;② 复制一个集合set <int > Ss(S);求长度(时间复杂度为O(1))set<int> s;s.size();判空(时间复杂度为O(1))a.empty();清空a.clear();删除元素/插入元素a.erase(1); // 删除为1的那个原创 2020-10-07 00:43:52 · 257 阅读 · 0 评论 -
queue
queue1.初始化① 初始化队列queue <int> q;② 复制一个队列queue<int> qp(q);2.求长度(时间复杂度为O(1))queue<int> q;q.size();3.判空(时间复杂度为O(1))queue<int> q;q.empty();4.清空queue<int> q;q.push(1);q = queue<int>(); // 把一个空的queue赋给q即可5原创 2020-10-07 00:42:12 · 72 阅读 · 0 评论 -
priority_queue
priority_queue初始化① 初始化优先队列priority_queue<int> q; // 默认大根堆,从大到小排序② 初始化一个小根堆priority_queue<int, vector<int>, greater<int>> t;③ 复制一个优先队列priority_queue<int> p(q);求长度(时间复杂度为O(1))priority_queue<int> q;q.size(原创 2020-10-07 00:41:43 · 79 阅读 · 0 评论 -
pair
pair1.初始化① 初始化一个int与int对应的pairpair<int, int> p;② 为pair赋值// 1.make_pair赋值p = make_pair(9, 10);// 2.直接复制p = {1, 2};2.访问元素pair<int, int> p;p.first; // 访问第一个元素p.second; // 访问第二个元素3.比较运算(pair先比较first, 然后比较second)#include <bit原创 2020-10-07 00:41:23 · 51 阅读 · 0 评论 -
map/multimap
map/multimap1.特性 map保证出现在map内的pair只出现一次,且map内的元素按照first从小到大排序,但是当first相同时,那么按照输入的顺序排序2.初始化①初始化一个映射map<int, int> m;②复制一个映射map <int ,int > mm(m);3.求长度(时间复杂度为O(1))m.size();4.判空(时间复杂度为O(1))a.empty();5.清空a.clear();6.删除元素/插入元素a原创 2020-10-07 00:32:52 · 68 阅读 · 0 评论 -
deque
deque1.初始化① 初始化一个双端队列deque <int> dq② 复制一个双端队列deque <int> dq2(dq);2.求长度(时间复杂度为O(1))a.size();3.判空(时间复杂度为O(1))a.empty();4.清空a.clear();5.随机访问a.front(); // 取第一个数a.back(); // 取最后一个数a[10]; // 取第11个元素,下标为106.删除元素/插入元素vector<原创 2020-09-21 22:45:43 · 63 阅读 · 0 评论 -
bitset
bitset1.初始化一个bitsetbitset <8> b(6); // 把数字6初始化为一个8位的二进制2.以二进制输出bitsetcout << b << endl; // 结果:000001103.取反cout << ~b << endl; // 把b的所有位取反cout << b.flip() << endl; // 把b的所有位取反cout << b.flip(0) &l原创 2020-09-21 22:43:02 · 69 阅读 · 0 评论 -
list
bitset1.初始化一个bitsetbitset <8> b(6); // 把数字6初始化为一个8位的二进制2.以二进制输出bitsetcout << b << endl; // 结果:000001103.取反cout << ~b << endl; // 把b的所有位取反cout << b.flip() << endl; // 把b的所有位取反cout << b.flip(0) &l原创 2020-09-20 01:06:22 · 52 阅读 · 0 评论 -
algorithm
文章目录algorithm1. 二分查找1.1 lower_bound()1.2 upper_bound()1.3 binary_search()2. findalgorithm1. 二分查找1.1 lower_bound()用法: lower_bound(a.begin(), a.end(), k)查找a数组中出现大于等于k的第一个位置,返回迭代器时间复杂度: O(logN)举例:假设有a[5]={0,2,3,3,5},对于要查找的整型数valval = 2, i = 1;val =原创 2020-09-20 01:04:51 · 93 阅读 · 0 评论