顺序容器
- vector 一般情况使用
- deque 两端插入快
- list, forword_list 链表性质插入删除都快 迭代器不支持+-<>
- array 固定大小
- string 针对字符串,内存连续
迭代器范围均是[..)
,比较操作使用不等号
迭代器的范围概念是标准库的基础
初始化
- 赋值C1(C2)
- 列表{a,b,c}
- 迭代器(a.bedin(),a.end())
- 大小+内置/默认构造(10,'h')
其他操作
- swap(快)
- assign(跨类型赋值->迭代器初始化)
- 关系运算符(字典序)
插入
- push_back,push_front
- emplace_back,emplace_front 可直接构成构造函数
- insert 一个or范围 在...之前插入
访问
- 迭代器
- front/back
- []/at
删除
- pop_front pop_back
- erace
不要缓存end()迭代器的值
对于添加和删除会导致迭代器(string,vector,deque)失效,需要采取相应的办法解决
vector增长
vector变长数组,会预留大一些的空间,实在不得已才增加。
capacity 不拷贝情况下大小(注意和size的区别)
reserve 预先稿纸,减少拷贝
shrink_to_fit 缩减预留空间
string
- 构造方法
- surstr
- append和replace
- 搜索操作 find rfind find_first_of find_last_not_of... 未找到返回string::npos
- 数值转换 to_string, stoi,stod
容器适配器
没看懂先放放