1. vector 容器的自增长:当插入元素当存储空间不足时,vector 必须重新分配存储空间(比如将新空间大小增加为当前大小的2倍)

管理容量的成员函数

操作 定义
c.shrink_to_fit() 将capacity()减少到和size()相同大小。
c.capacity() 不重新分配内存空间的话,c可以保存多少个元素
c.reverse(n) 分配至少能容纳n个元素的内存空间
  • shrink_to_fit只适用于vector、string和deque
  • capacity和reverse只适用于vector和string。

2. 容器适配器

三种顺序容器适配器:queue,priority__queue,stack。

容器 默认实现 其他实现
queue deque list或vector
priority_queue vector deque
stack deque list或vector

size_type
value_type 元素类型
container_type 底层容器类型

eg.

A a; 创建一个新的空适配器,命名为a
A a(b); 创建一个名为a的新适配器,初始化为容器b的副本deque<int> deq;
stack<int> stk(deq); //从deq拷贝元素到stk

关系操作符 所有适配器都支持全部关系操作符:==、!=、<、<=、>、>=

2.1 stack栈适配器

s.empty();      //如栈为空范围true。
s.size();       //返回栈中元素个数。size_type类型。
s.pop();       //弹出栈顶。
s.top();       //返回栈顶元素。
s.push(value);  //入栈。

2.2 queue和priority_queue

q.pop() //删除队首元素,但不返回。
q.front() //返回队首元素的值,不删除。
q.back() //返回队尾元素的值,不删除。只适用于queue
q.top() //返回具有最高优先级的元素值,不删除。
q.push(item) //在队尾压入一个新元素。
q.emplace(args)

C++ Primer 5th笔记(9)chapter9 顺序容器 vector 容器的自增长 容器适配器相关推荐

  1. C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值

    1. 容器对象的构造和赋值 1.1 构造 C c; C c; //默认构造函数 C c1(c2) C c1=c2; C c{a,b,c,-} C c={a,b,c,-} C c(b,e)//eg. l ...

  2. C++ Primer 5th笔记(9)chapter9 顺序容器

    1. 定义:元素按位置进行存储和访问.元素的排列次序与元素值无关,而是由元素添加到容器的次序决定的. 容器类型 定义 优点 缺点 string 可变大小数组 支持快速随机访问 在尾部之外的位置插入或删 ...

  3. C++ Primer 5th笔记(chap 11)关联容器

    •map •multimap •set •multiset •set •unordered_map •unordered_set •unordered_multimap •unordered_mult ...

  4. C++ Primer 5th笔记(chap 15 OOP)继承的构造函数容器

    1. 继承的构造函数 1.1 C++11新标准中,派生类可以重用其直接基类定义的构造函数. 继承方式是提供一条注明了直接基类名的using声明语句. class Bulk_quote : public ...

  5. C++ primer 5th笔记

    目录2022年11月25日 周五 阴 第一.二章:变量和基本类型 基本内置类型 unsigned float与double 'A'与"A" 布尔类型转换时 初始化与赋值 初始化 声 ...

  6. C++ Primer 5th笔记(10)chapter10 泛型算法 :迭代器

    迭代器类别 名称 定义 插入迭代器 这些迭代器被绑定到一个容器上,可用来向容器插入元素 流迭代器 这些迭代器被绑定到输入或输出流上,可用来遍历所有关联的IO流 反向迭代器 这些迭代器向后而不是向前移动 ...

  7. C++ Primer 5th笔记(9)chapter9 顺序容器 string

    1. string构造 string s; 定义一个新的空string对象,命名为s string s(cp); 定义一个新的string对象,用cp所指向的(以空字符null结束的)C风格字符串初始 ...

  8. C++ Primer 5th笔记(9)chapter9 顺序容器 get insert delete

    insert.delete需要解决两个问题: 在什么位置插入? 返回什么位置? 1. 访问对象 操作 定义 c.back(); 返回c中尾元素的引用, 若c为空, 函数行为未定义. c.front() ...

  9. C++ Primer 5th笔记(9)chapter9 顺序容器 forward_list

    1. 特殊的forward_list 单向链表的删除操作,真正删除的是某个元素后面的值(想想是为什么?) 操作 定义 lst.before_begin() 返回指向链表首元素之前不存在的元素的迭代器, ...

最新文章

  1. pandas中DataFrame的ix,loc,iloc索引方式的异同
  2. linux shell 判断字符串是否在数组中
  3. 一种 Android 应用内全局获取 Context 实例的装置
  4. 翻译:通向T-SQL的阶梯:超越基础水平3:建立相关子查询
  5. java n 转换_自己写的Java N进制互相转换(2=N=16)
  6. EntityFramework实体默认值遇到Oracle自增主键
  7. Oracle字符函数length substr concat实例
  8. lua如何判断是否支持cookie_如何判断页面布局是否合理?
  9. 一句代码搞定权限请求,从未如此简单
  10. Wireshark安装提示缺少KB3118401和KB2999226文件
  11. 电磁学——电磁场与电磁波:麦克斯韦方程组
  12. 荣耀8 android8.0 2018,荣耀8青春版可升级Android 8.0+EMUI 8.0
  13. Linux局域网多人聊天软件
  14. PPT的视频由于无编码解码器无法播放问题
  15. css中border属性设置
  16. 批量删除多个 Excel 空白工作表
  17. IDE SATA SCSI iSCSI等存储硬盘对比与分析
  18. 杂谈——每日热量消耗
  19. 简单的Wifi网络概念
  20. 新车磨合应该从正确启动发动机开始

热门文章

  1. Java 洛谷 P5461 赦免战俘讲解
  2. html怎么设置图片倾斜度,CSS3-css如何使图片倾斜45度显示
  3. 计算机一级b考试理论知识,计算机一级b-一级计算机等级考试中的“一级B”指什么?谢谢! 爱问知识人...
  4. 手机怎么打开f12_手机App调试(Android)
  5. 成功解决pywintypes.com_error: (-2147352573, ‘找不到成员。‘, None, None)
  6. Py之tornado:tornado库的简介、安装、使用方法之详细攻略
  7. DL之DeepLabv1:DeepLabv1算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  8. 成功解决model_selection\_search.py:584: DeprecationWarning: fit_params as a constructor argument was d
  9. 成功解决TypeError: only integer scalar arrays can be converted to a scalar index
  10. ML之DT:基于DT算法对泰坦尼克号乘客数据集进行二分类(是否获救)预测