我有一个包含数据的 vector ,例如:15,27,40,50,15,40

我想对其进行排序并删除相同的值,因此排序后的输出应为:15,27,40,50

我尝试了几种方法:

std::sort(vectProjHori.begin(),vectProjHori.end());
for (std::vector<int>::iterator it=vectProjHori.begin(); it!=vectProjHori.end(); ++it)
{
    if(it+1 != it)
    {
        std::cout << ' ' << *it;
    }
}

但是,它不能删除 vector 中的相同值。
我真的希望有人想提供一种有效的方法。

任何帮助将不胜感激。
谢谢

最佳答案

您可以使用标准功能来做到这一点。

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

10-06 03:05