曲径通幽论坛
标题:
基于范围的 for 循环
[打印本页]
作者:
easy
时间:
2014-1-13 22:04
标题:
基于范围的 for 循环
在 C++11 里,for 循环的形式还能是基于范围的,如下所示:
int persons[5] = {1, 2, 3, 4, 5};
for (int x : persons)
cout << x << std::endl;
复制代码
实际上,该特性是为了 STL 而实际的。在这种 for 循环中,括号内的代码声明一个类型与容器存储的内容相同的变量,然后指出了容器的名称。接下来,循环体使用指定的变量依次访问容器中的每一个元素。
比如使用 STL 中的 for_each 函数:
for_each (books.begin(), books.end(), ShowReview);
复制代码
将其替换为基于范围的 for 循环则有:
for (auto x : books) ShowReview(x);
复制代码
这里,根据 books 的类型(假设是 vector(Review)),编译器能推断出 x 的类型为 Review,然而循环会依次将 books 中的每个 Review 对象传递给 ShowReview() 。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2