9.4 vector的自增长
c.capacity();//返回的是储存区域的大小
c.size();//返回的是现有元素的个数
c.reserve(n);//预置储存区的大小,也就是每次当空间不够的时候增加的量
9.5 容器的选用
deque是双向数组
list 是链表
9.6 再谈string 类型
1) 其实string可以看成存储字符的vector
2) 只适用于string类型的操作
s.substr(pos,n);//返回字串
s.substr(pos);
s.substr();//返回s的副本
s.append(args);//把args代表的串接在s后面
s.replace(pos,len,args);//替换
s.replace(b,e,args);//替换
3) 查找
s.find(args);//查找第一个args代表的串出现的地方
s.rfind(args);//最后一个
s.find_first_of(args);//args代表的串中的任意字符第一次出现
s.find_last_of(args);//任意字符最后一次出现
s.find_first_not_of(args);//s中查找第一个不属于args的字符
s.find_last_not_of(args);//最后一个不属于args的字符
4) 比较
compare();//其实一般还是用<= 这样的关系符号比较习惯
9.7 容器适配器
#include<stack>
#include<queue>
1) 通用操作
size_type 长度
value_type 元素类型
container_type 基础容器类型
2) 初始化
stack<int> stk(deq);//把deq的东西放到stk中
3) 覆写基础容器类型
默认stack和queue都基于deque实现
priority_queue 基于vector实现
stack<string,vector<string> >str_stk;//用vector为基础类
4) 堆栈容器
c.empty();
c.size();
c.pop();
c.top();
c.push(item);
5) 优先队列和队列
q.empty();
q.size();
q.pop();
q.front();
q.back();
q.top();
q.push(item);