什么是C ++中的unordered_set

时间:2018-10-04 01:33:35

标签: c++ stl unordered-set

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

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

1 个答案:

答案 0 :(得分:3)

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

这将通过遍历指定的vector来初始化集合,从向量的开头开始,迭代直到到达结尾,{s.insert(theVal)中的每个int都调用vector 1}}。

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

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