C++11——序列式容器总结

目录

         容器:

vector ——顺序表。

list ——环状双向链表

deque——双开口数组

容器适配器:

stack——先进后出

queue——先进先出

heap——堆(隐式表达) #include<aglorithm>

priority_queue——优先队列

标准之外:

slist——单链表


vector ——顺序表。

概述:vector类似于array,但vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。

迭代器:vector的迭代器是Random Access Iterators,vector迭代器就是普通指针(typedef value_type * iterator)

扩容:当vector扩容时,会发生“重新配置(两倍大小),元素移动,释放空间”等过程。删除时容量不变。

元素操作:对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就会失效。

STL标准规范中指出:插入时,新节点将位于哨兵迭代器的所指节点的前方。

list ——环状双向链表

list的迭代器:双向迭代器,插入和结合不会造成原有的list迭代器失效。删除时只有“指向被删除元素”的迭代器失效。

list的元素操作:remove(const T& value) :移除所有数值为value的元素。

                          unique() :移除数值连续相同的连续元素,只有连续相同的元素才会被移除,剩下一个。

                         splice(iterator position,list&x):将x链表接合与position所指位置之前。x必须不同于*this。

                          transfer(iterator position,iterator first,iterator last):将[first,last)内的元素移动到position之前。(非公开接口)

                          merge(list& x ):将x合并到*this身上。两个list的内容必须先经过递增排序。

                         sort():list不能使用STL算法中的sort(),必须使用sort()成员函数。STL算法中的sort()要求随机访问迭代器。

关于sort函数的解析:https://blog.youkuaiyun.com/shoulinjun/article/details/19501811 (STL剖析上写得快排,实际上应该是归并排序)

#include<ios
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值