命名空间
- 头文件:可将类、全局变量等在头文件中声明,为了防止头文件的重复包含,通常应该使用预处理指令 #define (定义符号)、#ifndef(如果没有定义)、#endif(结束判断)来书写头文件的内容。
字符串、向量和数组
- getline(cin , stringname) :从输入流中读入内容直到读入换行符,保留空白符,但换行符不存入string对象中
- 字面值与string:字符字面值和字符串字面值可以隐式转化为string对象
- empty 函数根据 string 是否为空返回布尔值; size_type 表示各自类型的长度或下标,返回无符号整数,类型为 string::size_type
- 常用函数:islower(c) c是小写字母时为真;isupper(c) c是大写字母时为真 ; tolower(c) c是大写字母时,输出 c 对应的小写字母,否则原样输出 c ;toupper(c) c是小写字母时,输出 c 对应的大写字母,否则原样输出 c ;
- 下标运算符:vector或string的下标运算符可用于访问已存在的元素,而不能用于添加元素。添加元素需使用(+= or append or push_back for string) and (insert or push_back for vector)
- 迭代器 end() 指向尾元素的下一位置,不指向具体元素,不能解引用或递增
- 复杂数组声明的理解:从数组名字开始按照由内向外的顺序阅读,如int (&a)[10]表示a是对数组引用,该数组包含10个int
- 数组的缺点:数组的大小是确定不变的,不可以向数组中添加元素,丧失了vectoer的灵活性
- 不可以将整个数组赋值给另一个数组,只能逐个元素的拷贝;可以直接将整个vector拷贝给另一个vector
- 多维数组初始化:使用花括号的形式,未列出的元素执行默认值初始化
- 范围for处理多维数组:除最内层循环外,其他所有循环的控制变量都应该是引用类型,以避免这些数组形式的元素被自动转换成指向数组首元素的指针