for_each遍历vector中的类
时间: 2024-10-24 22:09:31 浏览: 19
`for_each` 是 C++ 标准库中的一个函数式编程工具,它用于对容器(如 `std::vector`)中的每个元素执行某种操作。当你想要遍历并处理 `vector` 中的对象,而不想关心具体的迭代细节时,可以使用 `for_each` 函数。这个函数通常配合一个 lambda 表达式或函数指针一起使用。
下面是一个简单的例子,假设我们有一个包含自定义对象的 `vector`:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 定义一个简单类
class MyClass {
public:
int value;
void print_value() { std::cout << "Value: " << value << '\n'; }
};
int main() {
std::vector<MyClass> vec = {10, 20, 30, 40, 50}; // 假设vec里有MyClass实例
// 使用 for_each 遍历 vector,并打印每个对象的值
auto print_func = [](MyClass& obj) { obj.print_value(); };
std::for_each(vec.begin(), vec.end(), print_func);
return 0;
}
```
在这个例子中,`print_func` 是一个接受 `MyClass` 参照并调用其 `print_value` 成员函数的函数对象。`for_each` 将这个函数作用于 `vec` 的每个元素上。
阅读全文