前六章:
1.while 用于循环条件不易知; for用于循环次数已知。
2.文件结束符:windows系统为 两次ctrl+z; unix 为 ctrl+d。
3.buffer默认情况:cin会刷新cout;程序正常结束时,cout也被刷新。
4.wchar_t 为 宽字符型。
5.int、short 和 long 都默认为带符号型。
6.C++中把负数赋给unsigned 是合法的,结果是该负数对该类型取值个数求模后的值。ex.unsigned char = -1,其结果是255,因为255是-1对256求模后的结果。
7.在一行的末尾加 \ 可将此行和下一行当作同一行处理。
8.直接初始化 效率更高。
9.const 在定义时必须初始化。
10.引用必须用与该引用同类型的对象初始化。
11.class隐式指定为private ;struct 为public。
12.头文件不应有定义,例外:类、值在编译时就已知的const对象和inline函数。如果const变量不是用常量表达式初始化,那就不应该在头文件中定义。
13.预处理:#ifndef #endif
14.string的size操作:string::size_type
15.
16.vector<int>::size_type
17.C++程序员优先选用!=而不是<来编写循环条件。
18.迭代器:vector<int>::iterator iter=ivec.begin();
19.
20. bitset<32> bitvec; size_t bits_set=bitvec.count;
21. 数组下标的类型是size_t
22.指向const对象的指针也必须具有const特性;允许把非const对象的地址赋给指向const对象的指针,但系统会把它指的所有对象都视为const。
23.const int *pic:pic可修改,但指向的均为const;int *const cpi:cpi为const,但指向的可改。
24.
25.string到char的转换:char *str = str2.c_str()。
26.后自增操作优先级高于解引用操作。
27.显示转换:static_cast、dynamic_cast、const_cast、reinterpret_cast。
28.
29.异常类型只定义了一个名为what的操作,返回 const char* 类型的值。
30.预处理在调试时有用的常量:
_ _FILE_ _文件名;_ _LINE_ _当前行号;_ _TIME_ _文件被编译的时间;_ _DATE_ _文件被编译的日期
31.头文件
1).ptrdiff_t (signed)类型 在cstddef头文件中 :两个指针减法
2).size_t (unsigned)类型 在cstddef头文件中
3).NULL 在cstdlib头文件中
4).terminate标准库函数 在exception头文件中
5).exception exception
6). 在stdexcept头文件中
runtime_error(string);rang_error;overflow_error;underflow_error;logic_error;domain_error;invalid_argument;length_error;out_of_range
7).bad_alloc 在new头文件中
8).bad_cast 在type_info头文件中
9).assert宏 在cassert头文件中