我想检查一个整数向量是否有任何重复项,如果有,则必须返回 true。所以我尝试做这样的事情:
vector<int> uGuess = {1,2,3,3,4,5}
vector<int> a = uGuess;
sort(a.begin(), a.end());
bool d = unique(a.begin(), a.end());
这不起作用,因为 unqiue 不能分配为布尔值。我应该如何着手呢?如果我要编写一个 for 循环来执行相同的操作,我应该怎么做?
原文由 rrc 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 google 上查找
std::unique
我找到了这个页面 std::unique 。我看了看它做了什么:所以它看起来像你想要的 - 删除重复项。
然后我看看它返回的内容……
因此
std::unique
的结果是一个序列,它与整个vector
不一定相同。如果没有删除任何内容,则返回值将是
vector
的结尾。所以你要:
或者对于 C++11:
最后,为了使独特的功能起作用,需要对
vector
进行排序,因此完整的代码为: