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. java控制台编译通过,运行出现找不到或无法加载主类的情况

    参考链接:http://www.knowsky.com/1046493.html 当建了一个包之后(假设建的包的名字为com),找到该java文件的com目录,发现编译能够通过,但是运行的时候出现了一 ...

  2. 第七周psp例行报告

    本周psp 本周进度条 代码累积折线图 博文字数累积折线图 饼状图

  3. 20162328蔡文琛week08

    学号 20162328 <程序设计与数据结构>第X周学习总结 教材学习内容总结 错误和异常代表不常见的或不正确处理的对象. 抛出异常时输出的消息提供了方法调用栈的轨迹. 每个catch子句 ...

  4. 团队计划backlog---DayTwo

    任务索引卡(Two): 1.  季方:实现界面跳转,数据库相关数据的显示 的测试: 2.  司宇航:添加部分团队博客,并测试: 3.  王金萱.马佳慧:学习爬虫的相关内容,为将来统计博客部分做准备: ...

  5. Spring笔记④--spring整合hibernate链接数据库

    整合hibernate 整合什么? 有ioc容器来管理hibernate的SessionFactory 让hibernate使用上spring的声明式事务 先加入hibernate 驱动包 新建hib ...

  6. Leetcode题库——8.字符串转为整数【##】

    @author: ZZQ @software: PyCharm @file: myAtoi.py @time: 2018/9/20 20:54 要求:实现 atoi,将字符串转为整数. 1)根据需要丢 ...

  7. ubuntu下screen的使用

    ubuntu下screen的使用 日常在通过SSH远程到服务器训练网络和深度学习的相关代码,经常需要花费很长的时间.利用SSH远程连接服务器,运行程序需要保证在此期间窗口不能关闭并且连接不能断开,否则 ...

  8. 如何解决abd.exe已停止工作

     打开电脑,右键点击属性会出现如下界面: 点击左边高级系统设置:将会出现如下界面: 点击环境变量,点编辑. 把环境变量中的 ANDROID_ADB_SERVER_PORT 改成1122以后还遇到这个问 ...

  9. Week2-作业1:阅读与博客

    Week2-作业1:阅读与博客 第一章 :概论 1. 原文如下: 移山公司程序员阿超的宝贝儿子上了小学二年级,老师让家长每天出30道加减法题目给孩子做.阿超想写一个小程序来做这件事,具体实现可以采用很 ...

  10. sqlserver实现树形结构递归查询(无限极分类)

    SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE ...