顺序容器类型:
vector 支持快速随机访问
list 支持快速插入/删除
deque 双端队列
容器元素初始化
C<T> c;
C<T> c(c2);
C<T> c(begin,end);
C<T> c(n,t);//顺序容器
C<T> c(n); //顺序容器,采用这种类型的初始化,元素类型必须是内置或复合类型,或者是提供了默认构造函数的类型。
容器内元素的类型约束
元素类型必须支持赋值运算;
元素类型的对象必须可以复制。
引用类型、IO标准库类型、auto_ptr类型不支持复制或赋值,因此不能创建存放这些类型对象的容器。
容器定义的类型别名
类型别名 | 含义 |
---|---|
size_type | 无符号整形,足以存储此容器类型的最大可能容器长度 |
iterator | 此容器类型的迭代器类型 |
const_iterator | 元素的只读迭代器类型 |
reverse_iterator | 元素的逆序迭代器类型 |
const_reverse_iterator | 元素的只读逆序迭代器类型 |
difference_type | 足够存储俩个迭代器差值的有符号整型 |
value_type | 元素类型 |
reference | value_type&的同义词,元素的左值类型 |
const_referrence | const value_type&,元素的常量左值类型 |
begin和end
c.begin(),
c.end(),
c.rbegin(),它指向容器c的最后一个元素
c.rend(),他指向容器c的第一个元素前面的位置
不要存储end()操作返回的迭代器。添加或删除deque或vector容器内的元素都会导致存储的迭代器失效。
容器大小操作
c.size()
c.max_size()
c.empty()
c.resize(n)
c.resize(n,t)
访问容器元素
c.back()
c.front()
c[n]//只适用于vector和deque
c.at(n)//同上
删除容器元素
c.erase(p)
c.erase(b,e)
c.clear()
c.pop_back()
c.pop_front()//只适用list和deque
容器赋值与swap
c1=c2
c1.swap(c2)
c.assign(b,e)
c.assign(n,t)
vector容器自增长
c.capacity()//容量
c.reserve()//告之容器应该预留多少存储空间