由于C/C++博大精深,此篇总结只是沧海一粟,并不会说完全部东西,故会有连载,以后有学到什么东西就一步步往这里面填充
3/29/2015 10:38:11 PM —>
STL 三种容器vector,list,deque
- vector
- vector,一个自动增长的数组。 插入:提供push_back(para)函数用于后插入数据,提供insert(vector.begin()+shift,val)用于前插入数据。 删除:提供void pop_back()用于后删除数据,同理可以用erase()进行前删除数据。 vector优点为:便于插入和删除,还有随机访问,可以直接用[ ]和at(),直接访问数据。 vector对于内存开辟,初始化,清除都很方便,因为其从头到尾都只有一块内存。 vector缺点:使用insert,earse会大范围移动数据,影响性能。
- list
- list,链表。有单向链表,双向链表,循环链表。 同样提供的方法有:push_back,pop_back,push_front,pop_front.进行插入删除排序。 虽然list的随机访问性不好,没有[ ]和at操作,但是有提供front,back用于访问两端数据。 优点:擅长插入和删除的链表。 缺点:清除容器内所有数据很麻烦。
- deque
- deque同list一样,提供push_back,pop_back,push_front,pop_front四个方法。 deque还提供at, [ ]用于访问。
各个容器 优点 缺点 vector 随机访问,动态操作,自动调节内存,节省空间。 插入,删除效率低。在头部插入和删除消耗的时间规模同容器大小成正比。当添加的数据规模大于默认大小时,需要进行整体的重新分配、拷贝与释放 list 内存不连续。插入删除效率高。可在两端进行pop,push 不能随机访问。相对vector占用内存高。 deque 可以随机访问。插入与删除也方便。同样可在两端进行pop,push操作 占用内存多