📅  最后修改于: 2023-12-03 14:39:50.567000             🧑  作者: Mango
在 C++ STL(标准模板库)中,algorithm 提供了许多常用的算法函数,其中之一就是 for_each() 函数。该函数用于迭代容器中的元素,并对每个元素执行用户指定的操作。for_each() 函数是一个非常有用的函数,可以帮助程序员提高代码的可读性和简洁性。
for_each() 函数的语法如下:
template<class InputIt, class UnaryFunction>
UnaryFunction for_each(InputIt first, InputIt last, UnaryFunction f);
InputIt
:表示输入迭代器的类型,用于指示要遍历的容器的起始和结束位置。UnaryFunction
:表示一元函数的类型,用于指定要对每个元素执行的操作。first
:表示要遍历的容器的起始位置的迭代器。last
:表示要遍历的容器的结束位置的迭代器,不包括该位置上的元素。f
:表示要对每个元素执行的操作的函数对象。for_each() 函数将对给定的容器范围中的每个元素调用指定的函数。函数对象 f
将被调用,并传递当前元素作为参数。该函数不返回任何值,因此通常用于执行某些操作,而不是修改元素本身。常见用例包括打印容器中的元素、计算元素的总和等等。
下面是一个示例,演示了如何使用 for_each() 函数打印容器中的元素:
#include <iostream>
#include <vector>
#include <algorithm>
void print(int num) {
std::cout << num << " ";
}
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
std::cout << "Elements in the container: ";
std::for_each(nums.begin(), nums.end(), print);
return 0;
}
输出结果为:
Elements in the container: 1 2 3 4 5
在上述示例中,我们定义了一个函数 print()
,它接受一个整数作为参数,并打印该整数。然后,我们使用 for_each()
函数遍历了 nums
容器中的每个元素,并对每个元素调用 print()
函数进行打印。
f
函数对象的返回类型必须是 void
。for_each()
函数不保证遍历顺序,因此函数对象 f
可能会以任意顺序被调用。以上就是 C++ STL 中 for_each() 函数的介绍。通过使用该函数,您可以更轻松地对容器中的元素执行操作,提高代码的清晰度和可读性。