C++Primer 第三章 字符串,向量和数组

知识点:

1.如果使用等号初始化一个变量,为拷贝初始化(copy initialization),否则为直接初始化(direct initialization)

2.string 对字母大小写敏感。

3.读取位置数量的string对象:

int main 
{
  string word;
  while(cin>>word)
        cout<

4.getline 读取一整行,遇到换行符结束。

5.不能混用int和unsigned。表达式中有size()函数就不要用int了,避免混用。

6.不能把字面值直接相加,+两侧必须要有string。字符串字面值不是string类型

7.使用c++版本的c标准库头文件: 用cname而不是name.h的形式

8.vector是类模板(class template),根据模板创建类或者函数的过程为实例化(instantiation),vector是模板而非类型,由vector生成的类型必须包含vector中元素的类型,例如vector 。( )是元素数量,{ }是元素内容。【括号里的类型和vector类型相同情况下。

9.循环体内包含有向vector对象添加元素的语句,则不能使用范围for循环,范围for循环语句体内不应改变其所遍历序列的大小。

10.vector对象(以及string对象)的下标运算符可用于访问已存在的元素,而不能用于添加元素,确保下标合法的一种手段就是尽可能使用范围for语句。

11. end成员返回的迭代器常被称作尾后迭代器(off-the-end iterator),如果容器为空,begin和end返回同一个迭代器,都是尾后迭代器。不能再范围for循环中向vector对象添加元素。

12.箭头运算符->把解引用和成员访问两个操作结合在一起。

13.凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。

14.数组的维度必须输一个常量表达式。字符串字面值初始化数组,结尾有一个空字符。数组不允许给其他数组拷贝和赋值

15.c++中多维数组其实是数组的数组。对二维数组来说,常把第一个维度成称为行,第二个维度成为列

 


习题:

Exercise 3.26

In the binary search program on page 112,why did we write mid=beg+(end-beg)/2; instead of mid=(beg+end) /2;?

There's no operator + for adding two iterators.


你可能感兴趣的:(C++primer学习笔记)