C++ auto关键字的用法
在 C++11 标准之前,auto 关键字已经存在,其作用是限定变量的作用域。
在 C++11 标准中,auto 被赋予了新的功能,使用它可以让编译器自动推导出变量的类型。示例代码如下所示:
除了修饰变量,auto 还可以作为函数的返回值,示例代码如下所示:
除了修饰变量、函数返回值等,auto 最大的用途就是简化模板编程中的代码,示例代码如下所示:
当不确定变量类型时,可以使用 auto 关键字解决,示例代码如下:
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
在 C++11 标准中,auto 被赋予了新的功能,使用它可以让编译器自动推导出变量的类型。示例代码如下所示:
auto x = 10; //变量x为int类型在上述代码中,使用 auto 定义了变量 x,并赋值为 10,则变量 x 的类型由它的初始化值决定。由于编译器根据初始化值推导并确定变量的类型,因此 auto 修饰的变量必须初始化。
除了修饰变量,auto 还可以作为函数的返回值,示例代码如下所示:
auto func() { //……功能代码 return 1; }需要注意的是,auto 可以修饰函数的返回值,但是 auto 不能修饰函数参数。
除了修饰变量、函数返回值等,auto 最大的用途就是简化模板编程中的代码,示例代码如下所示:
map<string, vector<int>> m; for(auto value = m.begin(); value != m.end(); value++) { //…… }如果不使用 auto,则代码如下所示:
map<string, vector<int>> m; map<string, vector<int>>::iterator value; for(value = m.begin(); value != m.end(); value++) { //…… }此外,在模板编程中,变量的类型依赖于模板参数,有时很难确定变量的类型。
当不确定变量类型时,可以使用 auto 关键字解决,示例代码如下:
template<class T1, class T2> void multiply(T1 x, T2 y) { auto result = x * y; //使用auto修饰变量result }
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。