← 模式

范围迭代

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 循环提供了一种简单的语法,用于在不使用迭代器或索引的情况下迭代一个范围内的元素。它支持数组、提供了 beginend 成员函数的类型,以及可以通过实参依赖查找找到 beginend 函数的类型。

第 6-8 行演示了对数组 arr 的迭代。在每次迭代中,value 将获得 arr 中每个后续元素的值。

第 11-13 行同样演示了对 std::vector vec 的迭代(任何标准容器也都适用)。在这种情况下,我们将 ref 定义为引用类型,这将允许我们修改存储在 vec 中的对象。

贡献者

  • Joseph Mansfield

最后更新

2017年12月9日

来源

在 GitHub 上 Fork 此模式

分享