c++遍历容器一般是这样的

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;

不懂auto用法的小伙伴可以参考:auto用法

另外,也可以使用std::for_each实现相同功能,注意要添加头文件

1
2
3
4
5
6
7
8
9
10
11
12
// 自定义操作,挨个传入容器元素
void output(std::string s)
{
std::cout << s << std::endl;
}

int main()
{
std::vector<std::string> name = { "ljy", "wy", "wz", "dqy" };
std::for_each(name.begin(), name.end(), output);
return 0;
}