这次终于轮到我来写自己的STL用法了hhh
废话不多说,
1.vector,可变长数组,倍增的思想
vectorv; int n=10; for(int i=1;i<=n;i++) v.push_back(i); //1.vector的遍历 for(int i=0;i ::iterator it; for(it = v.begin(); it!=v.end(); it++) cout<<*it<<' '; //使用迭代器遍历,stl的常见用法 cout< a(3, 4); vector b (4, 3); if(a 2.二元组pair
pairp; //初始化 p=make_pair(10, "bl"); p={20, "abc"}; //存储多个东西可以用连续的pair<> pair > pp; p.first();//是指的第一个元素; p.second();//是指的第二个元素; //pair支持比较运算,以first为第一个关键字,second为第二个关键字 //按字典序排列或比较 //pair比结构体省代码 3.string字符串
string s = "abc"; s += "def"; s.length();//作用跟size基本相同 s.substr(1,4);//从下表为1开始,截取长度为4的子串 s.substr(1);//返回从下表为1开始的所有字符串 s.size();//返回字符串s的长度 s.empty(); //返回字符串是否为空 s.clear();//清除字符串的内容 //如何用printf输出字符串 printf("%sn", a.c_str());//a.c_str()返回string的起始地址4.队列
//队列没有 queueq; //q没有clear()的 *** 作 q.push();//从队尾压入一个元素 q.pop();//d出队头元素 q.front()//返回队头元素 q.empty();//判断队列是否为空 q.back();//返回队尾元素 //队列,优先队列和栈没有clear函数 如果想清空一个队列,可以直接重新开一个 5.优先队列
//优先队列, 堆,一般定义的堆,默认是大根堆 priority_queueq; q.push();//插入一个元素 q.pop()//d出堆顶元素 q.top() //返回堆顶元素 //定义小根堆的方法 q.push(-x); priority_queue , greater >qq; 6.栈
//栈 stackst; st.pop();//d出栈顶元素 st.push();//压入栈中 st.empty();// st.top();//返回栈顶元素 st.size();// 7.双端队列
//deque双端队列,速度有点慢 ,支持随机选取 dequedq; dq.size();// dq.empty(); // dq.pop_back();//d出队尾元素 dq.pop_front();//d出队头元素 dq.push_back();//从队尾插入一个元素 dq.push_front();//从队头插入一个元素 dq.front();//返回队头元素 dq.back();//返回队尾元素 dq.begin();//返回队头的迭代器 dq.end();// 返回队尾的迭代器 8.set
//set里面是不能存相同元素的,但是multiset可以 //set的所有 *** 作时间复杂度都是logn set/multiset size(); empty(); clear(); insert(); find()//如果查找不存在的话,会返回end();这一个迭代器 count();//返回的是某一个数的个数 erase();//1.如果是一个数,那么就是删除所有的这个数2.如果是一个迭代器,就是删除这个迭代器 lower_bound();//返回大于等于x的最小的数 upper_bound();//返回大于x的最小的数 begin();end();//支持++和--的 *** 作,返回前驱和后继9.map
map/multimap size(); empty(); clear(); begin(); end(); insert();//插入的数是一个pair erase();//输入的参数是pair或者是迭代器 find(); //可以像用数组一样用map,时间复杂度是logn //也支持lower_bound和upper_bound
unordered_set, unordered_map, unordered_multiset, unordered_multimap //用法和上面类似,不过增删改查的时间复杂度是o(1) ,不支持lower_bound和upper_bound,迭代器--++的 *** 作11bitset
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)