如何对Vector进行排序并删除相同的值?

ana*_*y99 1 c++ algorithm 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,它无法在向量中删除相同的值.我真的希望有人愿意提供一种有效的方法.

任何帮助将受到高度赞赏.谢谢

mwe*_*chy 7

您可以使用标准功能执行此操作.

std::sort(vectProjHori.begin(), vectProjHori.end());
vectProjHori.erase(std::unique(vectProjHori.begin(), vectProjHori.end()), vectProjHori.end());
Run Code Online (Sandbox Code Playgroud)