小编Jay*_*Jay的帖子

C++:shared_ptr as unordered_set的密钥

请考虑以下代码

#include <boost/unordered_set.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>

int main()
{
    boost::unordered_set<int> s;
    s.insert(5);
    s.insert(5);
    // s.size() == 1 

    boost::unordered_set<boost::shared_ptr<int> > s2;
    s2.insert(boost::make_shared<int>(5));
    s2.insert(boost::make_shared<int>(5));
    // s2.size() == 2
}
Run Code Online (Sandbox Code Playgroud)

问题是:为什么s2的大小是2而不是1?我很确定它必须与哈希函数有关.我试着看看增强文档,并且没有运气就玩哈希函数.

想法?

boost hash-function shared-ptr unordered-set

2
推荐指数
1
解决办法
4785
查看次数

标签 统计

boost ×1

hash-function ×1

shared-ptr ×1

unordered-set ×1