【发布时间】:2019-04-30 03:51:42
【问题描述】:
我正在尝试实现二叉搜索树。
我发现自己需要遍历树有几个不同的原因:
(1) 检查BST是否有特定元素
(2) 填充 BST 中保存的值的数组
(3) 检查两个 BST 是否相等
有没有办法编写一个遍历函数,将泛型函数(未指定其参数)作为参数,以便在遍历 BST 时调用该函数?
(例如,检查当前节点的值是否等于给定值的函数)。
谢谢你:)
【问题讨论】:
-
为什么不使用
std::function?std::function让您可以将任何可调用对象(函子、lambda、函数指针)粘贴到一个方便的对象中,该对象可以像任何其他对象一样传递 -
1.) alter igel 提供了一个链接(其中也有示例)。 2.) 搜索
std::function应该提供大量示例。然而,我曾经用一个稍微不同的解决方案写了一个对SO: Preorder traversal through Morse code BST 的答案:一个Apply类,它有3 种不同的访问方法,这些方法可以派生用于多种用途。 -
std::bind with auto 怎么样:onlinegdb.com/ByWdwPBi4
标签: c++ arrays dictionary