PS:删除元素的成员函数并不检查其参数。在删除元素之前,程序员必须确保它们是存在的。

1.迭代器的范围是[begin,end)左闭右开。

2.对构成迭代器的要求:
①它们指向同一个容器中的元素或者容器的最后一个元素之后的位置。
②end不在begin之前。

3.当将一个容器初始化为另一个容器的拷贝的时候,两个容器的容器类型和元素类型都必须相同。但是,当传递迭代器参数来拷贝一个范围的时候,新容器和原容器中的元素类型也可以不同,只要能将要拷贝的元素转换为要初始化的容器的元素类型就可以了。

4.为了使用array类型,我们必须同时指定元素类型和大小

5.虽然我们不能对内置数组类型进行拷贝或对象赋值操作,但是对于array没有限制(需要赋值号左右两边的运算对象必须具有相同的类型,另外不允许用花括号包围的值列表进行赋值)。

6.顺序容器定义了一个名为assign的成员,允许我们从一个不同但是相容的类型赋值,或者从容器的一个子序列赋值。
ps:由于其旧元素被替换,因此传递给assign的迭代器不能指向调用assign的容器。

7.①由于swap操作不对任何元素进行拷贝,删除或者插入操作,因此这个操作很快。(这个操作只是交换了两个容器内部的数据结构,但是对于数组来说的话,就是真的会交换其中的元素。)
②交换array后,指针,引用,和迭代器所绑定的元素保持不变,但是元素值已经在另一个array中对应的元素的值进行了交换。
③string交换后会导致迭代器,引用,指针失效。

8.每个容器类型都支持相等运算符:除了无序关联容器以外所有的容器都支持关系运算符。

9.除了push_back,list和forward_list,deque容器还支持名为push_front的类似操作。
ps:deque除了像vector一样有随机访问元素的能力外,还提供了vector不支持的push_front.

10.关于插入函数insert,第一个参数为一个迭代器,将元素插入到这个迭代器所指向元素的位置之前。
ps:将元素插入的vector,string,deque中的任何位置都是合法的,但是这样做会很耗时。
该迭代器不能指向自己。

11.emplace函数在容器中直接构造元素。传递给amplace函数的参数必须与元素类型的构造函数相匹配。

12.包括array在内的每个顺序容器都有一个front成员函数,而除forward_list之外的所有顺序容器都有一个back成员函数。
调用front,back或者解引用迭代器之前,要确保容器非空,否则这样的操作行为是未定义的。

13.如果希望确保下标是合法的,可以使用at成员函数。at成员函数类似下标运算符,但如果下标越界,at会抛出一个out_of_range异常

14.vector,string不支持push_front,不支持pop_front.Forward_list不支持pop_back.

15.假如erase中输入的两个迭代器相同,返回这个迭代器的值。

16.内置数组的地址其实就可以看成是迭代器。因此在用内置数组给vector或是list初始化的时候可以用其地址代替迭代器,最后的地址要用end函数,得到尾后迭代器。

17.resieze改变容器的大小。c.resize(n);或者c.resize(n,t);

18.如果在一个循环中插入,删除deque,string,vector中的元素,不要缓存end返回的迭代器。

19.list和forward_list是顺序容器但是不支持随机访问,因此其迭代器允许++但是对于+2这样的操作是不允许的,可以用advance(it,2)来完成。

20.只有在执行insert操作时size和capacity相等,或者调用resize或reserve时给定的大小超过当前capacity,vector才可能重新分配内存空间。

21.resize和reserve的区别。前者是改变容器种元素的数量,后者是改变系统预存给这个容器的空间。

Chapter9(顺序容器) --C++Prime笔记的更多相关文章

  1. Chapter11(关联容器)--C++Prime笔记

    1.关联容器: map关键字-值对,经常被称为关联数组 set中每个元素只有一个关键字,即只保存关键字的容器 ①允许重复的关键字的容器名字都包含multi. ②不保持关键字顺序存储的容器的名字都以但粗 ...

  2. 【c++ Prime 学习笔记】第9章 顺序容器

    一个容器是特定类型对象的集合 顺序容器中元素的顺序与其加入容器的位置对应 关联容器中元素的顺序由其关联的关键字决定,关联容器分为有序关联容器和无序关联容器 所有容器类共享公有接口,不同容器按不同方式扩 ...

  3. C++ Primer 读书笔记: 第9章 顺序容器

    第9章 顺序容器 引: 顺序容器: vector 支持快速随机访问 list 支持快速插入/删除 deque 双端队列 顺序容器适配器: stack 后进先出栈 queue 先进先出队列 priori ...

  4. C++ Primer 笔记——顺序容器

    1.标准库中定义了一些顺序容器,所有顺序容器都提供了快速顺序访问元素的能力. 2.如果容器的元素类型没有默认构造函数,那么在构造这个容器的时候不能只指定这个容器的数目,因为没有办法默认构造这些元素. ...

  5. 《C++ Primer》笔记 第9章 顺序容器

    顺序容器类型 类型 解释 vector 可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢 deque 双端队列.支持快速随机访问.在头尾位置插入.删除速度很快 list 双向链表 ...

  6. C++ 顺序容器

    <C++ Primer 4th>读书笔记 顺序容器内的元素按其位置存储和访问.容器类共享公共的接口,每种容器类型提供一组不同的时间和功能折衷方案.通常不需要修改代码,只需改变类型声明,用一 ...

  7. C++ STL 顺序容器--list + 关联容器

    list 双向链表,可以双向遍历,既指向前驱节点,又指向后继但不能随机访问任意元素,可动态增加或者减少元素,内存管理自动完成,增加任何元素都不会使迭代器失效, 删除元素时,除了指向当前被删元素的迭代器 ...

  8. C++ 顺序容器基础知识总结

    0.前言 本文简单地总结了STL的顺序容器的知识点.文中并不涉及具体的实现技巧,对于细节的东西也没有提及.一来不同的标准库有着不同的实现,二来关于具体实现<STL源码剖析>已经展示得全面细 ...

  9. c++ 顺序容器学习

    所谓容器,就是一个装东西的盒子,在c++中,我们把装的东西叫做“元素” 而顺序容器,就是说这些东西是有顺序的,你装进去是什么顺序,它们在里面就是什么顺序. c++中的顺序容器一共有这么几种: vect ...

随机推荐

  1. python json模块使用详情

    python其他知识目录 #json.数据交换用到json文件.json是特殊的字符串.访问网站,返回的就是json 1.json简介: 定义:JSON(JavaScript Object Notat ...

  2. /etc/profile不生效问题

    http://blog.csdn.net/cuker919/article/details/54178611

  3. Java实验五(客户端)

    一.    实验内容 1.    运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.    利用加解密代码包,编译运行代码,客户端加密,服务器解密: 3.    客户端加密明文后将密文通过 ...

  4. wdatepicker控件de使用小方法汇总

    在总结wdatepicker控件的使用前,先插播一条吧,下午刚心血来潮百度的一条 问?C#中Int16.Int32.Int64.之间的区别,:::嘿嘿其实百度知道就有,但还是写上吧! Int16 表示 ...

  5. css3学习笔记三

    css3有些特殊的元素选择器这和jquery相似.效果图如下

  6. POJ 2096 Collecting Bugs 期望dp

    题目链接: http://poj.org/problem?id=2096 Collecting Bugs Time Limit: 10000MSMemory Limit: 64000K 问题描述 Iv ...

  7. 软件工程实践2018第六次作业——现场UML作图

    团队信息 学号 姓名 博客链接 124 王彬(组长) 点击这里 206 赵畅 点击这里 215 胡展瑞 点击这里 320 李恒达 点击这里 131 佘岳昕 点击这里 431 王源 点击这里 206 陈 ...

  8. iOS UIView性能最优的设计圆角并且绘制边框颜色

    //以给cell切圆角为例- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollection ...

  9. Internet History, Technology and Security (Week 2)

    Week 2 History: The First Internet - NSFNet Welcome to week 2! This week, we'll be covering the hist ...

  10. k米案例分析

    K米产品分析 第一部分 调研.评测 评测 上手体验 大一暑假的时候,在ktv和同学唱k的时候就接触过了. - -.所以对于k米的第一次上手体验已经不记得了(ps:尴尬)!~其实以前用它的时候想法很简单 ...