【发布时间】:2016-05-15 01:37:10
【问题描述】:
我有一个以 shared_ptrs 作为键的 unordered_set。这在 99% 的情况下都可以正常工作,但在同样的情况下,我需要从类内部搜索集合,并且我想避免继承 enable_shared_from_this,正因为如此。
我可以/如何通过原始指针搜索 shared_ptr 的 unordered_set。
【问题讨论】:
-
你到底为什么要在指针上搜索?
-
std::find_if带有自定义谓词(作为 lambda)? -
@DanMašek:与普通的
unordered_set::find相比,性能会很差 -
@DanMašek find_if 没有利用哈希表 - 使用空删除器创建 shared_ptr 比使用 find_if 更便宜
-
@EdHeal 我不确定你到底是什么意思,但如果你暗示我正在搜索指针的值,我没有这么说,在这种情况下我也没有。在很多情况下,我实际上是这样做的,例如我有一个全局缓存,可确保对象的唯一性,允许通过指针搜索它们,在一般情况下,散列可能更便宜。
标签: c++ unordered-set