笔记:《C++ Primer》第3章

关键字:标准库类型

1、标准库string类型中,用getline函数读取整行文本。它只要遇到换行符,即使它是输入的第一个字符,getline也将停止读入并返回。getline接受两个参数:一个输入流对象,一个string对象。如下:

int main()

{

string line;

while(getline(cin,line))

{

cout<<line<<endl;

}

return 0;

}

2、任何存储string操作结果的变量必须为string::size_type类型。特别重要的是,不要把size的返回值赋值给一个int变量。这是因为size_type能存储的string长度是int所能存储的两倍。如下所示:

#include <iostream>

#include <string>

using namespace::std;

int main()

{

string str("Hello World!\n");

string::size_type n=str.size();

cout << "The size of "<<endl << str << "is " << n<< endl;

for(string::size_type ix=0; ix!=str.size(); ++ix)

str[ix]!=‘*‘;

cin.get();

return 0;

}

vector的情况与之类似,如下:

vector<int> a;

...

vector<int>::size_type n=a.size();

3、当进行string 对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string 类型的。如下所示:

string s1="hello";

string s2="world";

string s3=s1+", ";             //ok

string s4="hello"+"world";     //error

4、C++程序员习惯于优先选用!=而不是<来编写循环判断条件。

5、对于vector来说,必须是已经存在的元素才能用下标操作符进行索引。

6、标准库容器的iterator迭代器中,end操作指向末端元素的下一个,并不指向任何实际的元素,仅仅起到哨兵的作用。

7、采用“*操作符”来访问迭代器所指向的元素。如果迭代器指向容器的第一个元素,那么*iter和n[0] 指向的是同一个元素。

8、const_iterator相比一般的迭代器而言,只能用于读取容器内的元素,而不能改变其值。

9、迭代器相减,如“iter1-iter2”,用来计算两个迭代器对象的距离,该距离是名为difference_type的signed类型的值。

10、任何改变vector长度的操作都会使已存在的迭代器失效。

11、bitset类用于处理二进制位的有序集。

时间: 2024-11-04 16:32:32

笔记:《C++ Primer》第3章的相关文章

【读书笔记】设计模式第6章:行为型模式2

本文主要分析了中介者模式.观察者模式.备忘录模式.访问者模式.状态模式.解释器模式,介绍它们的定义.优缺点.使用场景,以及实例代码.为了深刻地理解设计模式,最重要的还是动手编写代码. 我参照书中的例程重新构想了一些更加生动.易于理解的例子,希望大家喜欢. 代码可以通过以下链接进行浏览: http://git.oschina.net/caipeichao/java-design-pattern 这些代码都经过编译运行,保证没有错误. 中介者模式 定义 也叫调停者模式 用一个中介对象来封装一系列同事

[读书笔记]算法(Sedgewick著)·第二章.初级排序算法

本章开始学习排序算法 1.初级排序算法 先从选择排序和插入排序这两个简单的算法开始学习排序算法.选择排序就是依次找到当前数组中最小的元素,将其和第一个元素交换位置,直到整个数组有序. 1 public static void sort(Comparable a[]){ 2 int N = a.length; 3 for(int i = 0; i < N; i ++){ 4 int min = i; //最小元素索引 5 for(int j = i + 1; j < N; j++){ 6 if(

读书笔记:计算机网络第7章:阻塞控制

这是我在Coursera上的学习笔记.课程名称为<Computer Networks>,出自University of Washington. 由于计算机网络才诞生不久,目前正在以高速在发展,所以有些旧的教材可能都已经跟不上时代了.这门课程在2013年左右录制,知识相对还是比较新的.覆盖了计算机网络中的各个协议层,从物理层到应用层都讲得非常仔细.学完这门课程之后对计算机网络会有比较深刻的了解. 概述 课程位置 关于传输层和网络层的上半部分 话题 阻塞就类似于显示生活中的堵车 阻塞CONGEST

【读书笔记】设计模式第五章:行为型模式

本文主要分析了模板方法模式.命令模式.责任链模式.策略模式.迭代器模式,介绍它们的定义.优缺点.使用场景,以及实例代码.为了深刻地理解设计模式,最重要的还是动手编写代码. 我参照书中的例程重新构想了一些更加生动.易于理解的例子,希望大家喜欢. 代码可以通过以下链接进行浏览: http://git.oschina.net/caipeichao/java-design-pattern 这些代码都经过编译运行,保证没有错误. 模板方法 定义 定义一个操作中的算法框架,而将一些步骤延迟到子类中 角色:抽

[读书笔记]算法(Sedgewick著)·第一章(1)

到家放松之后就开始学习算法了,手里拿的是拿的是一本Robert Sedgewick的橙皮书<算法(第四版)>的.这本书与导论那本书的不同之处在于轻数学思想.重实现,也就是说这是一本很不错的基础编程书.拿来做书中的练习还是蛮不错的,封面说有50种算法哦.思维导图如下,就且学且更新吧. 1.基本编程模型 第一章开始讲述用程序实现算法的优点:程序是对算法精确.优雅和完全的描述:可以通过运行程序来学习算法的各种性质:可以在应用程序中直接使用这些算法.还有这种学习算法的缺点缺点:分离思想和实现细节的困难

《python基础教程(第二版)》学习笔记 字符串(第3章)

<python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:%左侧是格式字符串,右侧是需要格式化的值print '%s=%d' % ('x',100) ==> x=100%% 格式字符串中出现 %模板字符串:from string import Templates=Template('$x is 100');  s.substitute(x='ABC');  ==> '

《python基础教程(第二版)》学习笔记 字典(第4章)

<python基础教程(第二版)>学习笔记 字典(第4章)创建字典:d={'key1':'value1','key2':'value2'}lst=[('key1','value1'),('key2','value2')]; d=dict(lst)d=dict(key1='value1', key2='value2')字典基本操作:d={'key1':'value1','key2':'value2'}; len(d) ==> 2 #字典中的键值对数量d={'key1':'value1','

DirectX 11游戏编程学习笔记之7: 第6章Drawing in Direct3D(在Direct3D中绘制)(重点回顾+勘误)

        本文由哈利_蜘蛛侠原创,转载请注明出处!有问题欢迎联系[email protected]         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候,会使用章节号而非页码.同样的情况适合于"龙书"第二版. 上一期的地址: DX 11游戏编程学习笔记之6 这一章应该是本书最长的一章了,可能也是最难的一章,所以大家一定要好好消化,仔细学习!这一章大致相当于"龙书"第二版的第7章和第8章,还添加了一些别的东西. 由于这一

&lt;深入理解C指针&gt;学习笔记和总结 第四章 指针和数组

数组是一个什么玩意: 数组和指针我的理解,有相同之处也有不同之处.因有相同之处,因此一些资料上说,数组和指针本质是相同的.因有不同之处,因此也有一些资料上说,数组和指针是不一样的. 相同之处: 数组名字和指针名字都代表了一个地址. 如:int num[10];num是数组名.函数开辟了一个存储十个整数类型的空间,而num是他们的首地址. int *p; p=(int *)malloc(10*sizeof(int));类似的,p也指向了首地址. 不同之处是,num[10]中的空间位置是在栈中,而

C++ Primer 笔记(2)第二章 变量与基本类型

第二章 变量与基本类型 1.基本内置类型包括算术类型和空类型,算术类型分为两类:整型(包括字符和布尔类型)和浮点型: 2.布尔类型(bool)的取值是真(true)或者假(false): 3.字面值常量:每个字面值常量都对应一种数据类型,字面值常量的形式和值决定了它的数据类型, 由单引号括起来的一个字符是char型字面值,有双引号括起来的零个或者多个字符则构成字符串字面值: 20  整形字面值 ‘a’ 字符字面值 “Hello World”或者“”都会字符串字面值 ‘A’表示单独字符A,而“A”