C++ Primer 5th笔记(9)chapter9 顺序容器 vector 容器的自增长 容器适配器
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 容器的自增长 容器适配器相关推荐
- 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 ...
- C++ Primer 5th笔记(9)chapter9 顺序容器
1. 定义:元素按位置进行存储和访问.元素的排列次序与元素值无关,而是由元素添加到容器的次序决定的. 容器类型 定义 优点 缺点 string 可变大小数组 支持快速随机访问 在尾部之外的位置插入或删 ...
- C++ Primer 5th笔记(chap 11)关联容器
•map •multimap •set •multiset •set •unordered_map •unordered_set •unordered_multimap •unordered_mult ...
- C++ Primer 5th笔记(chap 15 OOP)继承的构造函数容器
1. 继承的构造函数 1.1 C++11新标准中,派生类可以重用其直接基类定义的构造函数. 继承方式是提供一条注明了直接基类名的using声明语句. class Bulk_quote : public ...
- C++ primer 5th笔记
目录2022年11月25日 周五 阴 第一.二章:变量和基本类型 基本内置类型 unsigned float与double 'A'与"A" 布尔类型转换时 初始化与赋值 初始化 声 ...
- C++ Primer 5th笔记(10)chapter10 泛型算法 :迭代器
迭代器类别 名称 定义 插入迭代器 这些迭代器被绑定到一个容器上,可用来向容器插入元素 流迭代器 这些迭代器被绑定到输入或输出流上,可用来遍历所有关联的IO流 反向迭代器 这些迭代器向后而不是向前移动 ...
- C++ Primer 5th笔记(9)chapter9 顺序容器 string
1. string构造 string s; 定义一个新的空string对象,命名为s string s(cp); 定义一个新的string对象,用cp所指向的(以空字符null结束的)C风格字符串初始 ...
- C++ Primer 5th笔记(9)chapter9 顺序容器 get insert delete
insert.delete需要解决两个问题: 在什么位置插入? 返回什么位置? 1. 访问对象 操作 定义 c.back(); 返回c中尾元素的引用, 若c为空, 函数行为未定义. c.front() ...
- C++ Primer 5th笔记(9)chapter9 顺序容器 forward_list
1. 特殊的forward_list 单向链表的删除操作,真正删除的是某个元素后面的值(想想是为什么?) 操作 定义 lst.before_begin() 返回指向链表首元素之前不存在的元素的迭代器, ...
最新文章
- pandas中DataFrame的ix,loc,iloc索引方式的异同
- linux shell 判断字符串是否在数组中
- 一种 Android 应用内全局获取 Context 实例的装置
- 翻译:通向T-SQL的阶梯:超越基础水平3:建立相关子查询
- java n 转换_自己写的Java N进制互相转换(2=N=16)
- EntityFramework实体默认值遇到Oracle自增主键
- Oracle字符函数length substr concat实例
- lua如何判断是否支持cookie_如何判断页面布局是否合理?
- 一句代码搞定权限请求,从未如此简单
- Wireshark安装提示缺少KB3118401和KB2999226文件
- 电磁学——电磁场与电磁波:麦克斯韦方程组
- 荣耀8 android8.0 2018,荣耀8青春版可升级Android 8.0+EMUI 8.0
- Linux局域网多人聊天软件
- PPT的视频由于无编码解码器无法播放问题
- css中border属性设置
- 批量删除多个 Excel 空白工作表
- IDE SATA SCSI iSCSI等存储硬盘对比与分析
- 杂谈——每日热量消耗
- 简单的Wifi网络概念
- 新车磨合应该从正确启动发动机开始
热门文章
- Java 洛谷 P5461 赦免战俘讲解
- html怎么设置图片倾斜度,CSS3-css如何使图片倾斜45度显示
- 计算机一级b考试理论知识,计算机一级b-一级计算机等级考试中的“一级B”指什么?谢谢! 爱问知识人...
- 手机怎么打开f12_手机App调试(Android)
- 成功解决pywintypes.com_error: (-2147352573, ‘找不到成员。‘, None, None)
- Py之tornado:tornado库的简介、安装、使用方法之详细攻略
- DL之DeepLabv1:DeepLabv1算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- 成功解决model_selection\_search.py:584: DeprecationWarning: fit_params as a constructor argument was d
- 成功解决TypeError: only integer scalar arrays can be converted to a scalar index
- ML之DT:基于DT算法对泰坦尼克号乘客数据集进行二分类(是否获救)预测