《C++ Primer》--学习2

字符串,向量和数组

标准库类型 string

《C++ Primer》--学习2_第1张图片

 直接拷贝和拷贝初始化

如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去。如果不使用等号,则执行的是直接初始化

string s = (10,'c')    //直接初始化

string s = string(10,'c')    //拷贝初始化

string 对象上的操作

《C++ Primer》--学习2_第2张图片

s.size() 返回的是一个string::size_type类型的无符号数,当使用这个值之后就不要使用有符号数了,混用 int 和 unsigned 可能带来问题

比较 string 对象 ,大小写敏感

《C++ Primer》--学习2_第3张图片

 字面值和 string 对象相加

当把 string 对象和字符字面值及字符串字面值混在一条语句中使用时,必须确保每个加法运算符(+)的两侧的运算对象至少有一个是 string 

处理 string 对象中的字符

《C++ Primer》--学习2_第4张图片

 处理每个字符?使用基于范围的for语句

标准库类型 vector

要想使用 vector ,必须包含适当的头文件   #include

 编译器根据模板创建类或函数的过程称为 实例化 

vector 能容纳绝大多数类型的对象作为元素,但是因为引用不是对象,所以不存在包含引用的vector

定义和初始化 vector 对象

《C++ Primer》--学习2_第5张图片

《C++ Primer》--学习2_第6张图片

如果使用的圆括号,可以说提供的值是用来构造 vector 对象的

如果使用的花括号,可以表达成我们想列表初始化该 vector 对象

向 vector 对象中添加元素

范围 for 语句体内不应改变其所遍历序列的大小

 其他 vector 操作

《C++ Primer》--学习2_第7张图片

迭代器

使用迭代器

有迭代器的类型同时拥有返回迭代器的成员,比如,这些类型都拥有名为 begin 和 end  的成员

begin 成员负责指向第一个元素的迭代器,end 成员负责返回指向容器“尾元素的下一个位置的迭代器”,该迭代器指示的是容器的一个本不存在的“尾后”元素,这样的迭代器没什么实际含义,仅是个标记

如果容器为空,则 begin 和 end 返回的都是尾后迭代器,同一个迭代器

《C++ Primer》--学习2_第8张图片

 

你可能感兴趣的:(C++,C++)