C++ 算法 for_each() 函数

定义和用法

for_each() 函数用于对数据范围内的每个元素执行指定操作。

数据范围通过迭代器指定。

操作函数接收数据范围的元素作为参数。

注意:

如需修改元素值,必须使用引用参数(通过 & 引用运算符),如下例所示:

void add_one(int &value)

若不使用引用参数(如下所示),则函数只能读取元素值而无法修改:

void add_one(int value)

实例

将 vector 中的每个数字加一:

void add_one(int &value) {
  value++;
}

int main() {
  vector<int> numbers = {1, 7, 3, 5, 9, 2};

  // 每个数字加一
  for_each(numbers.begin(), numbers.end(), add_one);

  // 输出修改后的数字
  for (int number : numbers) {
    cout << number << " ";  // 输出:2 8 4 6 10 3
  }

  return 0;
}

亲自试一试

语法

for_each(iterator start, iterator end, function fun);

参数

参数 描述
start 必需。指向数据范围起始位置的迭代器。
end

必需。指向数据范围结束位置的迭代器。

将处理到该位置之前的元素。

fun 必需。接收数据元素作为参数的函数对象。

技术细节

返回: 返回传入的 fun 函数对象(C++11 起)。

相关页面

教程:C++ 数据结构

教程:C++ 迭代器

教程:C++ 算法