Chapter1 Base-Knowledge
1.main函数必须有返回值,而且一般是int类型的返回值,reture 0 表示执行成功
2.fflish(stdin)清空患冲区是一种不良风格
3.cin/cout重定向输入/输出流
4.unsigned int简写为 unsigned
5.代码换行:以一个反斜线符号结尾,后面不允许加注释或空格
t << " Hi " << endl;
//等价于
cout<<"Hi"<<endl;
6.引用类型的对象必须在定义是初始化,即绑定到另一个对象
7. const
- const定义的全局变量是定义该对象的文件的局部变量,不能被其他文件访问。除非加“extern”修饰
- 非const引用不能绑定一个const对象
- const引用可以直接用常量初始化或绑定到不同类型的对象,但是非const引用只能绑定同类型对象,不能常量赋值
8.访问标号(public / private / protect)
用Class定义的类,在定义第一个访问标号之前的任何成员都默认为private,而用struct定义的类,则默认为public
9. 命名空间using的声明一般不要放在头文件中
10. string::size 的返回值为string::size_type类型
尽量不要用int/unsigned来表示,因为 不要machine上的int型变量表示范围不同,如果太小的话会溢出
11. vector作for循环遍历的时候不要依赖size的副本遍历,因为在遍历过程中vector有可能添加了元素,size改变
for (vector < int > ::size_type it = 0 ; it ! = vec.size(); it ++ )
// Error
vector < int > ::size_type iSize = vec.size();
for (vector < int > ::size_type it = 0 ; it ! = iSize; it ++ )
12. vec[i] 下标表示法只能用于读取,赋值用push_back.
Chapter2 Array and Pointer
1. 在用下标访问元素的时候,Array使用size_t作为下标的类型
2. 不允许Array直接赋值和copy。可以for循环逐一copy每个元素
3. Avoid using the pointer which has not been inited
4. you can Assign 0 or const varible with 0 value to a pointer directly