CppPrimer笔记 Chapter9 顺序容器
2017-03-14 23:11
218 查看
CppPrimer笔记 Chapter9 顺序容器
标签: CppCppPrimer笔记 Chapter9 顺序容器
容器库概览92
顺序容器操作93
vector对象是如何增长的94
容器适配器96
容器库概览(9.2)
没有默认构造函数的类,定义容器时不能只传递一个元素数目参数.(我认为是 类中包含一个其他类类型的成员且这个成员的类型没有默认构造函数,则编译器无法初始化该成员.)class X { public: X(int a,int b) : x(a+b){} int x; }; int main() { vector<X> XX(10,{1,1});//ok 利用大括号调用X的初始化函数 vector<X> XX(10);//error 没有生成默认初始化函数
9.2.5
- 标准库
array类 允许赋值,赋值号左右两边运算对象需具有相同类型
- 除
array外,
swap不对任何元素进行拷贝.
- 除了
string外指向容器的迭代器,引用,指针在swap后都不会失效
- 对于
array
swap后,指针,引用迭代器所绑定的元素保持不变,但值进行了交换.
- 9.2.7关系运算符(我认为理解成字符串,其实就是按字典排序)
1. 若两个容器具有相同大小且所有元素两两对应相等,则两容器相等
2. 若大小不等,但小容器每个元素的都等于大容器的对应元素,则小容器小于大容器
3. 若两个容器都不是另一个的前缀子序列,则比较结果取决于第一个不相等的元素
顺序容器操作(9.3)
insert将元素插入到iter指向的元素之前的位置,并返回指向第一个新加元素的迭代器
erase(it1,it2)删除
it1一直到
it2之前的那个元素.调用后
it1==it2
substr(be,en)返回[be,en)的共en−be个元素的拷贝.若en越界,则仅返回到尾部.
关于
forward_list的特殊
没有
insert这样在iter前添加,删除元素的函数,而是
insert_after在iter后添加,删除成员的元素.
没有
end()而是
before_begin()返回
const_iterator首元素前不存在的元素的迭代器,无法接引用,用于在收不添加
向容器添加元素后,可能会使指向容器元素指针,引用或迭代器失效.
对
vector与
string,储存空间被重新分配,则均失效.未重新分配,则插入位置前的有效,之后的失效.
对
deque,插入到首尾位置之外的任何位置都会导致迭代器,指针与引用失效. 在首尾插入,迭代器会失效,引用与指针不会.
对list
于forward_list`,均有效
向容器删除元素后,可能会使指向容器元素指针,引用或迭代器失效.
对
vector与
string,指向被删除元素之前元素的均有效.尾后迭代器必失效
对
deque,在首尾外删除,则指向被删除元素外其他元素的均会失效.删除尾,则仅尾后迭代器失效,删除首,则尾后与其它均不失效(除了被删除的首部)
对
list于
forward_list,均有效.
vector对象是如何增长的(9.4)
预分配一段连续的内存,用完后得移动元素.capacity 分配的全部的用于储存vecter的连续空间
size 实际使用的
reserve 人为调整capacity的函数,但不会使capacity小于size
容器适配器(9.6)
意义:一种机制,使某种事物的行为看起来像另一种事物一样. 如下,利用deque构造了stack,然后stk就是一个stack了有
stack,
queue
priority_queue三种
deque<int> deq; stack<int> stk(deq);//以拷贝方式构造 stack<string,vector<string>> str_stk;//在vector上实现空栈 cout << std.top() << endl; std.push(5); cout << std.size() << endl; cout << deq.size() << endl;
优先队列使用在11.2.2节
相关文章推荐
- 10、C++ Primer 4th 笔记,顺序容器(2)
- C++ Primer 学习笔记——顺序容器的string操作
- 8、C++ Primer 4th 笔记,顺序容器(1)
- 顺序容器 - 2【C++ Primer 学习笔记 - 第九章】
- Cpp Primer<<学习容器与算法--顺序容器_8
- 【C++ Primer 学习笔记】chapter9 顺序容器
- C++学习笔记九-顺序容器(二) - ForFreeDom - 博客园
- C++ primer 第9章 顺序容器 笔记
- 顺序容器 - 1【C++ Primer 学习笔记 - 第九章】
- c++ primer笔记之容器
- C ++ 读书笔记 顺序容器
- 顺序容器的笔记
- C++学习笔记九-顺序容器(二)
- C++学习笔记八-顺序容器(一)
- 关联容器 - 2【C++ Primer 学习笔记 - 第十章】
- C++Primer 学习笔记之顺序容器
- C++ Primer学习笔记:STL顺序容器
- C++学习笔记(六)----关于顺序容器
- C++ primer第二次阅读学习笔记(第9章: 顺序容器)
- stl之顺序容器学习笔记3