<分区>
例如:
vector<int> v = {1, 2, 3};
unordered_set<vector<int>> s;
s.insert(v);
会报错
no match for call to '(const std::hash >) (const std::vector&)' noexcept(declval()(declval()))>
<分区>
例如:
vector<int> v = {1, 2, 3};
unordered_set<vector<int>> s;
s.insert(v);
会报错
no match for call to '(const std::hash >) (const std::vector&)' noexcept(declval()(declval()))>
最佳答案
因为 most of the C++ containers don't ? vector<bool>
似乎有明确的特化,但这是不寻常的情况;通常,他们不提供 std::hash
聚合或集合类型的重载(可能是因为它们不想锁定适用于任意模板化类型的哈希组合算法)。
关于c++ - 为什么 unordered_set 不允许 vector 作为键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52528794/