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. DebuggerVisualizer时,序列化引出的问题。

    实现如下功能:http://www.cnblogs.com/devil0153/archive/2010/09/01/Visual-Studio-Custom-Debugger.html#288924 ...

  2. 调试存储过程:ORA-0131 Insufficient privileges

    http://www.cnblogs.com/empty01/p/5568250.html

  3. 2-Second Scrum Meeting-20151202

    任务安排 闫昊: 今日完成:设计学习进度的管理. 明日任务:请假.(编译+计组,压力有点大) 金哉仁: 今日完成:继续商讨APP相关界面与设计,安装AndroidStudio. 明日任务:请假.(编译 ...

  4. 对网络助手的NABCD分析心得

    Sunny--Code团队::刘中睿,杜晓松,郑成 我们小组这次做的软件名字叫为校园网络助手.在大学学习的同学都知道学校里面有着内网与外网两种,并且有着流量限制,所以我们设计出来了这项软件,它主要有着 ...

  5. Leetcode题库——28.实现strStr()

    @author: ZZQ @software: PyCharm @file: strStr.py @time: 2018/11/6 20:04 要求:给定一个 haystack 字符串和一个 need ...

  6. 复杂PC问题——信号量与共享存储区

    #include <stdio.h> #include <unistd.h> #include <sys/ipc.h> #include <sys/sem.h ...

  7. “吃神么,买神么”的第二个Sprint计划

    “吃神么,买神么”的第二个Sprint计划   一.现状   前台布局设计完成一个主页,可以让浏览者了解我们网站的功能,这是第一个阶段的Spring完成的事情.由于没有实际的功能体现,所以第二阶段开始 ...

  8. Few-Shot/One-Shot Learning

    Few-Shot/One-Shot Learning指的是小样本学习,目的是克服机器学习中训练模型需要海量数据的问题,期望通过少量数据即可获得足够的知识. Matching Networks for ...

  9. Oracle12c 之后的路线图

    Oracle18c 以及 Oracle19c 的原始版本信息 装载一下别人的博客内容 http://www.cnblogs.com/zhjh256/p/9816499.html 感谢原作者.. 另外  ...

  10. SQL SERVER ENTERPRISE EDITION-CORE VS SERVER+CAL – DEMO ON DIFFERENCES

    SQL SERVER ENTERPRISE EDITION-CORE VS SERVER+CAL – DEMO ON DIFFERENCES DHARMENDRA KESHARIAugust 03, ...