相关疑难解决方法(0)

删除重复项和排序向量的最有效方法是什么?

我需要带有可能包含大量元素的C++向量,擦除重复项并对其进行排序.

我目前有以下代码,但它不起作用.

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

我怎样才能正确地做到这一点?

此外,首先擦除重复项(类似于上面编码)或首先执行排序是否更快?如果我首先执行排序,是否保证在std::unique执行后保持排序?

或者还有另一种(也许是更有效的)方法来做这一切吗?

c++ sorting stl vector duplicates

254
推荐指数
13
解决办法
31万
查看次数

从列表<int>中删除重复项

使用STL算法(尽可能多),例如remove_if()list::erase,有一种很好的方法可以从定义如下的列表中删除重复项:

list<int> l;

请注意,list::unique()仅当连续元素中出现重复时才有效.就我而言,无论在列表中的位置如何,都必须删除所有重复项.此外,删除重复意味着在最终结果中仅保留每个元素的一个副本.

编辑:l.sort()后面的选项l.unique()无法使用,因为这将破坏列表的顺序.

c++ stl

6
推荐指数
3
解决办法
9844
查看次数

如何从std :: vector <std :: pair <UnicodeString,UnicodeString >>中删除重复项

如何从中删除重复值

std::vector <std::pair<UnicodeString, UnicodeString> > myVect;
Run Code Online (Sandbox Code Playgroud)

是否有任何内置函数或我需要为此编写自定义代码

c++ stl stdvector

3
推荐指数
1
解决办法
9486
查看次数

标签 统计

c++ ×3

stl ×3

duplicates ×1

sorting ×1

stdvector ×1

vector ×1