gpt4 book ai didi

c++ - 遍历内部复杂容器

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:16 25 4
gpt4 key购买 nike

假设有一个类

class Foo
{
private:
ANonTrivialContainer bar;
OtherData baz;
};

ANonTrivialContainer 的迭代器是双向的。从外面看,我想用 bar 的内容做些事情。什么是优选的

  • 提供 beginBar() 和相应的 endBar(),返回 ANonTrivialContainer 的迭代器,就像接受的答案 Allowing access to container objects in C++ .这会起作用,但会向调用者公开内部细节(因为它需要对底层类进行显式调用)。
  • 提供一个自定义迭代器,将所有调用转发给一个内部迭代器。 beginBar 和 endBar 现在返回自定义迭代器。
  • 提供一个 forEach 方法,该方法采用对回调类对象的引用

最佳答案

我会提供一个 visitBars 泛型方法,将仿函数作为参数。

template<typename F> void visitBars(F visit) {
for(auto b: bar)
visit(b);
}

关于c++ - 遍历内部复杂容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17187782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com