gpt4 book ai didi

c++ - 哪个算法需要 "visitor"(boost 库中的术语)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:38:57 25 4
gpt4 key购买 nike

我正在学习 C++ 中的 boost 库。当我到达 bfs 部分时,指南告诉我可以输入一个访问者类(可选),它具有类似 vis.initialize_vertex(v, g)vis.examine_vertex 的功能(u, g).

我认为访问者只能用于您有时需要从中产生一些信息的算法,这并不常见。而且我只在 dfs 和 bfs 中看到过访客(在 boost 中)。所以我想问一下有没有其他算法需要访问者?

我的意思是“访问者”是当你在应用一个算法时,你可能需要一些额外的信息或做一些额外的事情(比如在 bfs 期间打印所有元素),但不是变体中的 apply_visitor。我想问的是是否有其他算法需要我们做这些额外的事情?

最佳答案

访客主要有两种,

主要是函数在“迭代器”上的应用:

  • 树遍历(前/后顺序遍历,...)。
  • 图遍历(dfs, bfs, ...)

另一个用于调度一个元素:

  • std::variant
  • 双重 dispatch
  • “替换”虚拟方法(访问者模式)。

关于c++ - 哪个算法需要 "visitor"(boost 库中的术语)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919856/

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