如何用for_each( )算法访问容器中的元素(函数对象的使用方法);
时间: 2024-02-16 11:00:11 浏览: 74
使用 for_each() 算法可以遍历容器中的所有元素,并对每个元素执行指定的函数操作。以下是使用 for_each() 算法的一般格式:
```c++
template<class InputIt, class UnaryFunction>
UnaryFunction for_each(InputIt first, InputIt last, UnaryFunction f);
```
其中,`InputIt` 是容器的迭代器类型,`UnaryFunction` 是一个函数对象类型,`f` 是一个函数对象,用于操作容器中的每个元素。
下面是示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void print(int i) {
cout << i << " ";
}
int main() {
vector<int> v{1, 2, 3, 4, 5};
// 使用 lambda 表达式作为函数对象
for_each(v.begin(), v.end(), [](int i) {
cout << i << " ";
});
cout << endl;
// 使用全局函数作为函数对象
for_each(v.begin(), v.end(), print);
cout << endl;
return 0;
}
```
输出结果:
```
1 2 3 4 5
1 2 3 4 5
```
在上面的示例中,我们使用了 lambda 表达式和全局函数作为函数对象,分别输出容器中的每个元素。
阅读全文