C++11新特性:
auto:
auto让编译器通过初始值来推算变量的类型。
auto定义的变量必须有初始值。
auto声明的所有变量的初始基本数据类型都必须一样。
decltype:
decltype的作用是选择返回操作数的数据类型。
编译器分析表达式并得到它的类型,却不计算表达式的值。
decltype(f()) sum = x; //sum的类型就是函数f的返回类型
如果decltype使用的表达式不是一个变量,则decltype返回表达式结果对应的类型。
int i = 42, *p = &i, &r = i; decltype(r+0) b; //正确:加法的结果是int,b是一个未初始化的int decltype(*p) c; //错误:c是int& ,必须初始化
decltype的表达式如果是加上了括号的变量,结果将是引用。
范围for语句(range for)
语法形式: for(变量 :对象)
statement
//输出string对象的字符 string str("some string"); for ( auto c : str) cout << c << endl; // //修改字符串中的字符 string s("Hello World!!!"); for ( auto &c : s) //c是引用 c = toupper(c);
2018年7月27日