gpt4 book ai didi

c++ - 检查 vector 中的重复项

转载 作者:IT老高 更新时间:2023-10-28 22:18:20 25 4
gpt4 key购买 nike

Possible Duplicate:
Determining if an unordered vector<T> has all unique elements

我必须检查 vector 是否有重复项。解决此问题的最佳方法是什么:

我取第一个元素,将它与 vector 中的所有其他元素进行比较。然后取下一个元素并执行相同的操作,依此类推。

这是最好的方法,还是有更有效的方法来检查重复?

最佳答案

如果你的 vector 是一个 STL 容器,解决方法很简单:

std::sort(myvec.begin(), myvec.end());
std::erase(std::unique(myvec.begin(), myvec.end()), myvec.end());

根据 cppreference (https://en.cppreference.com/w/cpp/algorithm/unique),元素被移动,使得 myvec.begin() 中的值为std::unique的返回值都是独一无二的。 std::unique 返回的迭代器后面的元素未指定(在我见过的每个用例中都无用),因此将它们从 std::vector<A> 中删除使用 std::vector<A>::erase .

关于c++ - 检查 vector 中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2860634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com