《C++ Primer》经典语句(五)

CH6

1.       顺序容器(sequence container)拥有由单一类型元素组成的一个有序集合,两个主要的顺序容器是list和vector。

2.       关联容器(associative container)支持查询一个元素是否存在,并且可以有效地获取元素;两个基本的关联容器类型是map映射和set集合;map是一个键/值(key/value)对,键(key)用于查询,而值(value)包含我们希望使用的数据;set包含一个单一键值,有效支持关于元素是否存在的查询。

3.       vector表示一段连续的内存区域,每个元素被顺序存储在这段内存中。

4.       list表示非连续的内存区域,并通过一对指向首尾元素的指针双向链接起来,从而允许向前和向后两个方向进行遍历。

5.       选择顺序容器类型的一些准则:1)如果我们需要随机访问一个容器,则vector要比list好得多;2)如果我们已知要存储元素的个数,则vector又是一个比list好的选择;3)如果我们需要的不只是在容器两端插入和删除元素,则list显然要比vector好;4)除非我们需要在容器首部插入和删除元素,否则vector要比deque好。

6.       一个需要动态增长的vector必须分配一定的内存以便保存新的序列、按顺序拷贝旧序列的元素以及释放旧的内存。

7.       容量是指在容器下一次需要增长自己之前能够被加入到容器中的元素的总数(容量只与连续存储的容器相关,例如:vector、deque或string;list不要求容量)。

8.       无论是list还是vector,对于已定义拷贝构造函数的类来说,插入这样的类的元素都需要调用拷贝构造函数。随着每次重新分配内存,vector必须为每个元素调用拷贝构造函数;而且在释放原来的内存时,它要为每个元素调用其相关类型的析构函数。

9.       容器对象的定义以容器类型的名字开始,后面是所包含的元素的实际类型。

10.   除了用相关联的初始值来初始化每个元素外,我们还可以指定一个值,并用它来初始化每个元素。

11.   我们能够定义的容器的类型有三个限制:1)元素类型必须支持等于操作符;2)元素类型必须支持小于操作符;3)元素类型必须支持一个缺省值(对于类类型,即指缺省构造函数)。

12.   迭代器(iterator)提供了一种一般化的方法,对顺序或关联容器类型中的每个元素进行连续访问。

13.   每种容器类型都提供一个begin()和一个end()成员函数:1)begin()返回一个iterator,它指向容器的第一个元素;2)end()返回一个iterator,它指向容器的末元素的下一个位置。

14.   iterator算术运算只适用于vector或deque,而不适用于list,因为list的元素在内存中不是连续存储的。

15.   容器对象也可以用“由一对iterator标记的起始元素和未元素后一位置之间的拷贝”来初始化。

16.   除了一对iterator之外,两个指向内置数组的指针也可以被用作元素范围标记器(range marker)。

17.   删除容器内元素的一般形式是一对erase()方法:一个删除单个元素,另一个删除由一对iterator标记的一段范围内的元素。

18.   赋值操作符使用针对容器元素类型的赋值操作符,把右边容器对象中的元素依次拷贝到左边的容器对象中。

19.   把所有容器类型的公共操作抽取出来,形成一个通用算法集合,它能够被应用到全部容器类型以及内置数组类型上;这组通用算法被称作泛型算法泛型算法;泛型算法通过一个iterator对,被绑定到一个特殊的容器上。

20.   getline()读取istream对象,向string对象插入字符,包括空格,直到遇到分割符、文件结束,或者被读入的字符序列等于string对象的max_size()值,在该点处读入操作失败。

21.   find_last_of()查找字符串中的“与搜索字符串任意元素相匹配”的最后一个字符;find_last_not_of()查找字符串中的与搜索字符串任意字符全不匹配的最后一个字符。

22.   在map(也叫关联数组,associative array)中,提供一个“键/值”对;键用来索引map,而值用作被存储和检索的数据。

时间: 2024-10-21 11:29:45

《C++ Primer》经典语句(五)的相关文章

业余草:《名博是怎样炼成的》经典语句整理

最近业余草拜读了<名博是怎样炼成的:个人品牌博客全攻略>一书,整理了其中的部分经典语句,分享给大家. 一口气读完了月光.萧秋水和秋叶著的<名博是怎样炼成的:个人网络品牌博客全攻略>一书,感慨甚多. 世界越来越平,博客,是一种见证! 这是一个网络时代,也是全民皆博的时代,每个人都应有一个博客,你我都不会例外. 坚持写博客的人都不太可能是"坏人",他们往往是真诚的人,有思考的人. 写得多了,慢慢就会有自己的风格,就会有人喜欢,有人读懂你,有人羡慕你,有人欣赏你,当然

【转】c++.primer.plus.第五版.中文版[下载]

c++.primer.plus.第五版.中文版[下载] 一共有5部分.全部下载完才可解压阅读. c++.primer.plus.第五版.中文版(一) c++.primer.plus.第五版.中文版(二) c++.primer.plus.第五版.中文版(三) c++.primer.plus.第五版.中文版(四) c++.primer.plus.第五版.中文版(五) "在遇到无法解决的问题时,我总会求助于C++ Primer一书."--Bruce Eckel,"编程思想"

JavaScript经典语句及其基本应用

核心提示:JavaScript经典语句及其基本应用 ■打开■ <input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开>  <OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT> ■另存为■ <input name

《把时间当作朋友》经典语句

       在读<暗时间>的时候,我不止一次注意到刘未鹏提到了李笑来老师,以及他写的<把时间当作朋友>.利用一个半天的时间,我把这本书的电子版看完了,觉得确实很有意思,里面提到的东西让我眼前一亮.以下是从本书中摘录的一些经典语句,与大家分享! 1. 仔细听清楚,无论我讲得多么有趣.多么有用或者是多么有道理,跟你一点关系都没有--当且只当你按我说的做了之后,对你来说,才算是真的有趣.真的有用.真的有道理. 2. 每个人所拥有的心智力量各不相同,而心智力量的差异会给每个人的一生带来无

《青年文摘》经典语句摘录

     最近看了<青年文摘>2011年十一月下半月刊,在此摘录一些经典语句,供大家品评!   1. 庄子说:"吾安得夫忘言之人,而与之言哉?"懂得"沉默是金"这个道理的朋友,现在确实不多了.   2. 如果一个人心意澄明,感觉通透,再也不会为小事抓狂,亦不必为大事暴跳如雷,更无须人家认同.   3. 为什么那么多人喜欢吃麦当劳?原因有:1)大脑喜欢品牌攻势:2)糖会成瘾:3)麦当劳超值套餐和大脑经济学:4)便利让人冲动:5)快捷也会成瘾.   4. 如

《C++ Primer》经典语句(二)

第二篇 1.       我们编写的程序以及所保存的程序数据在计算机的内存中是以二进制位序列的方式存放的,位(bit)是含有0或1值的一个单元. 2.       一个字节由8位构成,而一个字由32位构成,或者说是4个字节. 3.       类型抽象使我们能够对一个定长的位序列进行有意义的解释. 4.       C++提供了一组预定义的数据类型,如字符型.整型.浮点型,以及一组基本的数据抽象,如string.vector和复数.它还提供了一组操作符(或称运算符),如加.减.等于.小于操作符等

《C++ Primer》经典语句(四)

CH5 1.       程序最小的独立单元是语句(statement):一个表达式给它加个分号就变成了一个简单语句(simple statement):复合语句(compound statement)是由一对花括号包围起来的一系列简单语句. 2.       程序语句最简单的形式是空语句,后面仅有一个分号. 3.       在逻辑上,程序经常需要执行两条或多条语句构成的序列,在这样的情况下用一个复合语句(compound)来代替单个语句. 4.       包含一条或多条声明语句的复合语句,

《C++ Primer》经典语句(一)

第一篇 CH1 1.       试图一下子就能写出一个完全成功的程序几乎是不可能的. 2.       一个简单的错误常常有很多关联影响,会使编译器报告的错误比实际要多得多.因此,一旦错误被改正后,应当马上重新编译. 3.       三个预定义iostream对象: cin.cout和cerr   CH2 1.       在C++中,数组不同于整数类型和浮点数类型,它不是C++语言的一等(first-class)公民. 2.       在C++中,指针的主要用处是管理和操纵动态分配的内存

sql经典语句

下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句:1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql s