c++ - C++中的unordered_set是什么

标签 c++ stl unordered-set

下面是leetcode的一段代码,我想知道第二行是什么意思。我从未见过这种初始化集。有人能帮忙吗?谢谢!

 bool containsDuplicate(vector<int>& nums) {
    unordered_set<int> s (nums.begin(), nums.end());
    return s.size()!=nums.size();
 }

最佳答案

unordered_set<int> s (nums.begin(), nums.end());

这通过在指定的 vector 上迭代来初始化集合,从 vector 的开头开始迭代直到到达结尾,调用 s.insert(theVal)对于 vector 中的每个 int

return s.size()!=nums.size();

由于 unordered_set 本质上不允许集合中存在任何重复的键(即尝试将键插入集合,而该键已经是集合的成员, 根本不会修改集合), 那么我们知道如果集合的最终大小小于输入 vector 的大小, 则输入 vector 中必须至少有一个重复值。

关于c++ - C++中的unordered_set是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52637750/

相关文章:

c++ - 如何将 C++ unordered_set 用于自定义类?

c++ - 如何创建可以参数化的哈希函数?

c++ - 在我的特殊情况下我应该使用 vector 还是集合?或者完全不同的东西?

c++ - 是否有标准机制来检索 C 字符串的哈希值?

c++ - 如何设置对话框的所有者(或父级)?

c++ - "end()"后插入器的迭代器?

c++ - 获取unordered_set哈希值并且它是否恒定

c++ - Windows FormatMessage 的安全/灵活外观

c# - 如何在不使用 Skype API 的情况下读取所有 Skype 联系人和消息?

c++ - 如何在具有 protected 析构函数和公共(public)销毁方法的 3 方类上使用 shared_ptr