为什么std::unordered_set::find只支持以key查找?

youngwolf youngwolf 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以我的愚见,std c++的一些基本行为,虽然细节不甚了解,但为何设计成那个样子,基本上还是明白的,除了这个std::unordered_set::find,由于它只能以key为查找,如果存的是对象(而非指针),为了查找一个对象,我还得先构造这个对象,这明显不合理。有人会说那用std::unordered_map啊,但这样一来,std::unordered_set是否显得有些多余?

我心中的unordered_set应该是boost::container::unordered_set那样:
template<typename KeyType, typename KeyHasher, typename KeyEqual>
iterator find(const KeyType &, KeyHasher, KeyEqual);

可以看到它支持以任意key type为key来查找对象。
...全文
评论 36
收藏 已收藏
分享
返回顶部
youngwolf
C++ 语言 65,214 成员 250,514 内容