STL顺序容器用法自我总结】的更多相关文章

顺序容器类型:vector.deque.list.forward_list.string.array. queue(单向队列)底层也是用deque(双端队列)实现的 a.swap(b); swap(a,b); 可以交换两个容器的数据结构 初始化: 声明时定义 .assign(n,t),以n个t初始化 .assign(b,e),用迭代器b到e初始化 .assign(il),用il表示的数据初始化 添加元素: 参数中有迭代器的,都会返回迭代器. 下面的函数参数中的p表示迭代器. c.insert(p…
容器主要分为:顺序容器和关联容器 顺序容器和关联容器,顺序容器主要有:vector.list.deque等.其中vector表示一段连续的内存地址,基于数组的实现,list表示非连续的内存,基于链表实现.deque双向队列与vector类似,但是对于首元素提供删除和插入的双向支持.关联容器主要有map和set.map是key-value形式的,set是单值.map和set只能存放唯一的key值,multimap和multiset可以存放多个相同的key值, 还有unorder_multimap等…
我们都知道,stl在集装箱船分为两类,订购集装箱和相关的容器. 顺序容器有三种即动态数组vector,双端队列deque,以及链表list (对csdn的文字排版严重吐槽.写好的版发表了就变了) 一:顺序容器的经常使用操作 1:首先顺序容器的迭代器 定义:T<C>::iterator iter; /*支持全部顺序容器*/ *iter //返回迭代器的引用 iter->mem //对iter解引用,等效于(*iter).men ++iter|iter++ //自加 --iter|iter-…
list 双向链表,可以双向遍历,既指向前驱节点,又指向后继但不能随机访问任意元素,可动态增加或者减少元素,内存管理自动完成,增加任何元素都不会使迭代器失效, 删除元素时,除了指向当前被删元素的迭代器外,其他迭代器都不会失效 iterator指向当前被删除元素的下一个. deque vector是单向开口的连续空间,deque是双向开口的连续线性空间 双向开口则意味着可以在头尾两端分别插入或者删除元素 关联容器和顺序容器的区别在于:关联容器通过key存储读取元素,而顺序容器则是通过元素在容器中的…
-1. 本文章中所有函数原型均为C++98的标准. 通用的操作 //遍历容器--以vector,map为例 vector<int> vt; map<int,int> mp; for(vector<int>::iterator it=vt.begin();it!=vt.end();it++)printf("%d ",*it); printf("\n"); for(map<int,int>::iterator it2=mp…
顺序容器: vector:数组 list:链表 deque:双端数组 顺序容器适配器: stack:堆栈 queue:队列 priority_queue:优先级队列 deque是一个动态数组 deque与vector非常类似: deque可以在在数组开头和末尾插入和删除数据: #include <deque> #include <algorithm> deque<int>::iterator iElemetnLocater; for(iElementLocater a.…
C++ STL 提供了3个顺序容器 :vector, deque, list Vector动态数组.支持高速訪问:list双向链表,支持高速插入和删除. vector 中的元素是顺序存放的.所以随机訪问非常快,可是要插入和删除,这个时间复杂度就非常高了,vector初始化时有一个capacity,假设元素个数超出capacity,那vector就会又一次分配一个新的空间.并把旧值拷贝到新的空间中,释法原空间,这个也要耗费非常多时间,所以假设你知道元素的最大值,最好用reserve()函数初始最大…
一.顺序容器的分类 顺序容器:vector向量.list链表.deque双端队列: 优先级最高的是vector向量,它的速度比较快,优点最多: 在程序设计中,容器可以切换: #include <iostream> #include <vector> #include <list> #include <deque> using namespace std; int main() { vector<int> Ivec; list<int>…
1 STL的string 1 String概念 string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字符串,那么二者有什么区别呢. string和char*的比较 string是一个类, char*是一个指向字符的指针. string封装了char*,管理这个字符串,是一个char*型的容器. string不用考虑内存释放和越界. string管理char*所分配的内存.每一次string的复制,取…
目录 简介 用法 1. 头文件 2. vector的声明及初始化 3. vector基本操作 简介 vector,是同一类型的对象的集合,这一集合可看作可变大小的数组,是顺序容器的一种.相比于数组,应该多用vector,因为它的效率更高,而且具备很好的异常安全性. 对于容器来说,其重要特性之一便是于可以在运行时高效地添加元素. 类似于数组,vector采用连续内存地址来存储元素,因此vector属于顺序容器.也就意味着可以采用下标对vector的元素进行访问,和数组一样高效:同时它比数组更加灵活…