|
<
C++ 最经常使用的容器最经常使用法取排序(连续删编削)
文章目次
引述
C++ 的 STL 容器分为挨次容器战联系关系容器。
挨次容器:vector、deque、list(forward_list)、array、string
联系关系容器:map 战 set(及其 multi 战 无序版本)
容器适配器(没有是容器):stack、queue、priority_queue
所谓的挨次容器宏不雅上了解便是小鬼们按必然的挨次排排坐。联系关系式包含相同于数据库里面,有一个 key,有一个值如许的。只要挨次容器的机关函数才担任大小参数,联系关系容器其实不撑持。
挨次容器的 at 战下标操纵值合用于 vector、string、deque、array。
容器那末多,操纵那末纯,好比 array 没有撑持增加操纵,forward_list 没有撑持 push_back,vector 战 string 没有撑持 push_front 等等,我也没有居处有。既然云云,我们实在只需记一些枢纽容器的枢纽用法便可,其他比及需求的时分,百度查一查便可。上面,便是列出一些我们用得最多的容器的最最经常使用的一些操纵战办法。
没有考虑机能和特别数据构造专有特征,普通 vector+map+set+string 能够挨全国了。记那末多干吗,年岁年夜了,底子记没有住。假如非要留一个,vector 实在也够了。配上构造体,甚么皆无能,操纵贫困一面机能好一面罢了了。
vector
用法
[code]#include#include#include using namespace std;int main() { vector vec; vec.push_back(1); vector vec1; vec1.resize(10);//10 个 0 vector vec2(10);//10个元素,每一个元素皆是 0 vector vec3(10, 1);//10 个 1 vec3.assign(10, 1);//分派 10 个 1 vector vec4(vec3); vec.size(); vec.empty(); vec.front();//返回一个元素,即迭代器start指背的元素 vec.back(); vector::iterator it; it = vec1.begin() + 5; vec1.erase(it);//肃清某个地位的元素 vec.clear();//肃清一切的元素 it = find(vec3.begin(), vec3.end(), 10);//查找 sort(vec3.begin(), vec3.end());//vector出有自带排序办法,挪用算法包,降序排序(默许) sort(vec3.begin(), vec3.end(), less());//降序排序 sort(vec3.begin(), vec3.end(), greater());//降序排序 for (auto& it : vec) it++;//C++11 方法援用变量 vec3.capacity();获得包含备用空间正在内乱的总容量大小 vec3.at(5);感化同上,增长非常处置,越界扔出out of range vec3.max_size();//最年夜容量,即最多能够存储几个当前范例元素 vec3.pop_back();//肃清位于最初一个的元素 vec3.erase(vec3.begin(), vec3.end()); vec3.swap(vec2); reverse(vec.begin(), vec.end());//元素翻转 for (int i = 0; i < vec.size(); i++) cout |
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
|