如何从
中删除重复值std::vector <std::pair<UnicodeString, UnicodeString> > myVect;
是否有内置函数或我需要为此
编写自定义代码答案 0 :(得分:6)
假设(a)std::set
不是你想要的[你想在你的std::vector
中允许重复的元素,只是稍后删除它们]和(b)你没有希望更改std::vector
中元素的顺序[即当前顺序很重要],这两种情况都是合理的......您应该能够将Fred Nurk's answer调整为{{3}购买vector
代替list
并相应地修改less
比较器。
答案 1 :(得分:2)
如果您可以修改向量中的顺序,最好的方法是:
std::sort(myVect.begin(), myVect.end());
myVect.erase(std::unique(myVect.begin(), myVect.end()), myVect.end());
确保UnicodeString接受&lt;操作
但是,您可能希望使用不同的结构(如std :: set或std :: unordered_set)在插入时具有唯一的保证。