一 顺序容器类型
顺序容器
vector 支持快速随机访问 list 支持快速插入和删除 deque双端队列
顺序容器适配器
stack 栈 queue 先进先出队列 priority_queue有优先级管理的队列
1.顺序容器操作
构造函数:
C<T> c;C c(c2); C c(b,e)
begin和end操作
c.begin(); c.end()指向最后一个元素的下一个位置; c.rbegin()最后一个元素; c.rend()第一个元素的前一个位置
添加元素操作
c.push_back(t); c.push_front(t); c.insert(p,t)p为迭代器;
关系操作
< > == !=
容器大小操作
c.size(); c.max_size(); c.empty; c.resize(n);
访问操作
c.back(); c.front; c[n]; c.at(n);后两个只适用于vector和deque
删除
c.erase(p); c.clear(); c.pop_back();c.pop_front()后两个只适用于list 或deque
赋值与swap
c1=c2; c1.swap(c2); c.assign(b,e);
注意:vector不支持push_front()操作,原因是STL只采用高效的方法,而vector如果用push_front效率太低。
二 关联容器
map类定义的类型
map<k,v>::key_type map<k,v>::mapped_type map<k,v>::value_type
构造函数同上
关系运算同上
begin和end操作同上
赋值与swap操作,没有assign
clear erase 操作
map::insert(e) map::insert(beg, end) map::(iter,e)
map::count(k) map::find(k)
说明:set不支持下标操作,而且没有mapped_type类型