前言

auto会根据赋给变量的初值自动填充变量类型,当变量类型很长的时候尤其好用

注意

(1)使用auto必须要赋初值,且初值不能是模板或函数等不确定类型,因为需要根据初值判断变量类型

(2)使用auto同时定义几个变量要求这几个变量的初值类型相同

1
auto a = 3, b = '3', c = "3";	// 这样不行,初值类型不同只能分开写

示例

1
2
3
std::vector<std::string> name = {"ljy", "wy", "wz", "dqy"};
for (auto i = name.begin(); i != name.end(); i++) // 这里auto替换了std::vector<std::string>::iterator
std::cout << *i << std::endl;

上述循环根据c++11标准也可以这样写

1
2
3
std::vector<std::string> name = {"ljy", "wy", "wz", "dqy"};
for (auto i : name) // 注意,这里auto替换的是std::string,即直接将容器中的每个元素赋给了i进行遍历
std::cout << i << std::endl;

今天第一次看到这样的用法,觉得非常方便^_^