1.顺序容器分为3类:vector,list,deque
2. 容器内元素的类型约束:
在C++中,大多数的数据类型都可以做为容器的元素,甚至容器。容器的元素类型必须符合两个条件:1.元素类型支持赋值运算,2,元素类型的对象必须可以复制。要注意的是引用类型无法成为容器的元素。(这是因为如果引用类型成为元素后,就会出现引用的引用,或者指针的引用等,C++里面不支持这样的语意)
3.三种容器都是顺序容器,我的理解是把vextor看做数组,list是链表,而deque是集合了二者的一些特点,下面对三种 顺序容器操作做个比较:
容器迭代器的操作:因为list输入链表操作,所以它无法进行iter + n以及比较大小的关系运算,如>=, >
容器中添加元素:c.push_front(t) 向容器前端添加t,很显然vector不能使用啊
容器元素的访问:链表无法支持随机读取,像c[n],c.at[n]这种读取容器第n个值的list是没法用啦
容器元素的删除:c.pop_front(t) 删除首元素,vector不能使用
4. vector容器是连续分配的,它提供了两个接口capacity和reserve,capacity获取系统当前分配的当前内存能储存多少个元素,而reserve则告诉容器应该预留多少个元素的空间
FROM: http://blog.youkuaiyun.com/wasd6081058/article/details/7380661