← 模式
范围迭代
1234567891011121314 | #include <vector> int main() { int arr[] = {1, 2, 3, 4, 5}; for (int value : arr) { // 使用 value } std::vector<int> vec = {1, 2, 3, 4, 5}; for (int& ref : vec) { // 修改 ref } } |
此模式采用 CC0 公共领域贡献 许可。
需要 c++11 或更新版本。
意图
在不使用迭代器或索引的情况下,对一个范围内的元素进行迭代。
描述
基于范围的 for
循环提供了一种简单的语法,用于在不使用迭代器或索引的情况下迭代一个范围内的元素。它支持数组、提供了 begin
和 end
成员函数的类型,以及可以通过实参依赖查找找到 begin
和 end
函数的类型。
第 6-8 行演示了对数组 arr
的迭代。在每次迭代中,value
将获得 arr
中每个后续元素的值。
第 11-13 行同样演示了对 std::vector
vec
的迭代(任何标准容器也都适用)。在这种情况下,我们将 ref
定义为引用类型,这将允许我们修改存储在 vec
中的对象。