C++基础碎碎念
Welcome file 如果想在多个文件之间共享 const 对象,必须在变量得定义之前添加 extern 关键字。 一般来说,如果你认定变量是一个常量表达式,那就把它声明成 constexpr 类型。 auto 类型说明符 : C++11引入 auto 来让编译器替我们去分析表达式所属的类型。 注意, auto 让编译器通过初始值来推算变量的类型,显然 auto 定义的变量必须有初始值。 使用 auto 也能在一条语句中声明多个变量,因为一条声明语句只能有一个基本数据类型,所以 该语句中所有变量的初始基本数据类型都必须一样。 decltype 类型指示符 :有时会遇到这种情况:希望从表达式的类型推断出要定义的变量的类型, 但是不想用该表达式的值初始化变量。为了满足这一要求C++11引入了第二种类型说明符 decltype ,它的作用是 选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值: decltype(f()) sum = x; // su的类型就是函数f的返回类型 预处理器 :预处理变量有两种状态:已定义和未定义。 #define 指令把一个名字设定为预处理变量, 另外两个指令则分别检查某个指定的预处理变量是否已经定义: #ifdef 当且仅当变量已定义时为真, #ifndef 当且仅当 变量未定义时为真,则执行后续操作直到遇到 endif 指令为止。 使用getline读取一整行:有时我们希望能在最终得到的字符串中保留输入时的空白符,这时应该用 getline 函数 代替原来的>>运算符。getline函数的参数是一个输入流和一个string对象,函数从给定的输入流读取内容,直到遇到换行符为止(注意 ,换行符也被读进来了)。 string::size_type类型:string的size函数返回值的类型是size_type而不是int。string类及其它大多数 标准库都定义了几种配套的类型。显然size_type是无符号类型。如果一条表达式中已经有了size() 函数就不要再使用int了,这样可以避免混用int和unsigned可能带来的问题。 如果循环体内部包含有向vec...