繁体   English   中英

如何通过句柄获取boost :: fibonacci_heap中的元素?

[英]How do I get elements from boost::fibonacci_heap by handle?

我正在使用Boost 1.53.0中的boost::fibonacci_heap类来维护可更新的优先级队列。

当我想更新一个元素时,我需要将堆中的元素与我想要替换它的新元素进行比较。 我只想用“较小”的版本替换堆中的元素,所以我想在更新之前比较它们。

当我插入元素时,我存储它们的句柄( boost::fibonacci_heap::handle_type )。 我在fibonacci_heap文档中看到的所有函数只采用句柄类型提供某种写访问( update()decrease()increase()等)并且不允许我检查由更新之前的句柄。

有没有办法通过仅使用其句柄来查看fibonacci_heap中的元素?

您应该可以取消引用句柄。 此处提供了一个示例: http//www.boost.org/doc/libs/1_50_0/doc/html/heap/concepts.html

网站示例

fibonacci_heap<heap_data> heap;
heap_data f;
fibonacci_heap<heap_data>::handle_type handle = heap.push(f);
(*handle).handle = handle; // store handle in node

所以干脆打电话

(*handle)

获取存储在堆中的类的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM