下面是leetcode的代码块,我想知道第二行是什么意思。我从未见过这种初始化集。有人可以帮忙吗?谢谢!
bool containsDuplicate(vector<int>& nums) {
unordered_set<int> s (nums.begin(), nums.end());
return s.size()!=nums.size();
}
答案 0 :(得分:3)
unordered_set<int> s (nums.begin(), nums.end());
这将通过遍历指定的vector
来初始化集合,从向量的开头开始,迭代直到到达结尾,{s.insert(theVal)
中的每个int
都调用vector
1}}。
return s.size()!=nums.size();
由于unordered_set
从本质上讲不允许集合中存在任何重复的密钥(即,尝试将密钥插入到集合中,而该密钥已经是集合的成员,因此不会)修改集),那么我们知道,如果集的最终大小小于输入向量的大小,则说明输入向量中必须至少有一个重复值。