摘要
C++ 离散知识点
- 在不同源文件可define同一个宏(宏作用域为从#define开始到当前源文件结束)
- 防止头文件重复包含指的是:防止某个源文件重复包含同一个头文件两次,但是同一个头文件可以同时被不同源文件各包含一次。
- 类一般在头文件中定义,在类内定义的函数默认是
内联(inline)
的,而在类内声明,在类外定义的函数则不默认为内联(inline)
。 - 头文件内定义的变量会自动被加上
extern
。 - 在头文件里定义函数的几种方法:
- 声明类,在类中定义静态成员函数,并在头文件中实现函数。
- 使用模板函数(其要求声明和定义都在头文件中)
(没有试过)
。 - 定义为内联函数
inline
。
C++ 语法
- 负数求余和商都是负数。例如
-123 / 10 = -12
,-123 % 10 = -3
。 string
类型前要加std::
- 定义
std::string a="123456"
, 那么a[a.length() - 1] == '6'
而不是'\0'
。 char a = ''
会报错,因为不能初始化为空字符。至少也要是char a = '\0'
- 注意:栈
stack
没有reserve
方法。(TODO:C++ prime还是算法设计与分析中似乎有总结哪些结构含有reserve,看一下) - 注意vector的size是无符号的。例如
vector<int> aa;
,当aa.size()
为0时,aa.size()-1
不是-1而是一个无符号数的最大值。
C++ 库函数
int isalnum ( int c )
:头文件\<ctype\>
,检查一个字符是不是字母或数字(alphanumeric)。int tolower(int c);
:头文件\<ctype\>
,将一个字符转换为小写字符。