如何删除重复值
std::vector <std::pair<UnicodeString, UnicodeString> > myVect;
是否有任何内置函数或者我需要为此编写自定义代码
假设 (a) astd::set
不是您想要的 [即您希望在 中允许重复元素std::vector
,只是稍后删除它们] 并且 (b) 您不希望更改std::vector
[即,当前顺序很重要],这都是合理的情况...您应该能够适应Fred Nurk对如何从 C++ 中的列表中删除重复值vector
购买的回答,以相应地替换list
和修改less
比较器。
如果您可以修改向量中的顺序,最好的方法如下:
std::sort(myVect.begin(), myVect.end());
myVect.erase(std::unique(myVect.begin(), myVect.end()), myVect.end());
只需确保 UnicodeString 接受 < 运算符。
但是,您可能希望使用不同的结构,例如 std::set 或 std::unordered_set 在插入时获得唯一保证。