假设我有一个类,它只是一个标准容器的 Package 器(例如,vector
,但也可以是任何其他容器):
class Wrapper {
public:
Wrapper() = default;
std::vector<int> vec;
};
我想让它这样,遍历我的类的示例和遍历底层容器是一样的。例如,我想写这样的东西:
Wrapper w;
// ... input some data into vec
std::for_each(w.begin(), w.end(), [](const auto& elem) {
std::cout << elem << std::endl;
}
我该怎么做呢?对于这样的东西,最低要求的实现是什么?为了使Wrapper
类可以与大多数/所有标准算法一起使用,完整的实现需要什么?
我正在寻找一种C++17方法,而不依赖于boost或其他非标准库。
1条答案
按热度按时间brccelvz1#
最简单的解决方案是只返回容器自己的迭代器,例如:
顺便说一句:您的
for_each()
可以使用range-for loop来简化: