c++ .for_each
时间: 2024-04-24 13:23:26 浏览: 93
`std::for_each` 是 C++ 标准库中的一个算法函数,用于对指定范围内的元素进行操作。它接受一个可迭代的范围(如容器或迭代器对)以及一个函数对象(或函数指针),并将该函数对象应用于范围内的每个元素。
以下是 `std::for_each` 的基本语法:
```cpp
template<class InputIt, class UnaryFunction>
UnaryFunction for_each(InputIt first, InputIt last, UnaryFunction f);
```
其中:
- `InputIt` 是输入迭代器的类型,用于指定范围的开始和结束位置。
- `UnaryFunction` 是一个可调用对象类型,可以是函数对象或函数指针,用于对每个元素执行操作。
- `first` 是范围的起始位置的迭代器。
- `last` 是范围的结束位置的迭代器,指向最后一个元素的下一个位置。
- `f` 是要应用于每个元素的函数对象。
使用 `std::for_each` 可以方便地对容器中的每个元素执行操作,而无需手动编写循环。例如,我们可以使用 lambda 表达式来输出容器中的每个元素:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::for_each(numbers.begin(), numbers.end(), [](int num) {
std::cout << num << ' ';
});
return 0;
}
```
上述代码将输出:`1 2 3 4 5 `,表示对容器 `numbers` 中的每个元素执行 lambda 表达式中的操作,即输出元素的值。
阅读全文