[第九章] 顺序容器

顺序容器

  1. vector 一般情况使用
  2. deque 两端插入快
  3. list, forword_list 链表性质插入删除都快 迭代器不支持+-<>
  4. array 固定大小
  5. string 针对字符串,内存连续

迭代器范围均是[..),比较操作使用不等号

迭代器的范围概念是标准库的基础

初始化

  1. 赋值C1(C2)
  2. 列表{a,b,c}
  3. 迭代器(a.bedin(),a.end())
  4. 大小+内置/默认构造(10,'h')

其他操作

  1. swap(快)
  2. assign(跨类型赋值->迭代器初始化)
  3. 关系运算符(字典序)

插入

  1. push_back,push_front
  2. emplace_back,emplace_front 可直接构成构造函数
  3. insert 一个or范围 在...之前插入

访问

  1. 迭代器
  2. front/back
  3. []/at

删除

  1. pop_front pop_back
  2. erace

不要缓存end()迭代器的值

对于添加和删除会导致迭代器(string,vector,deque)失效,需要采取相应的办法解决

vector增长

vector变长数组,会预留大一些的空间,实在不得已才增加。

capacity 不拷贝情况下大小(注意和size的区别)

reserve 预先稿纸,减少拷贝

shrink_to_fit 缩减预留空间

string

  1. 构造方法
  2. surstr
  3. append和replace
  4. 搜索操作 find rfind find_first_of find_last_not_of... 未找到返回string::npos
  5. 数值转换 to_string, stoi,stod

容器适配器

没看懂先放放

猜你喜欢

转载自www.cnblogs.com/amojury/p/9001556.html