【问题标题】:Removing duplicate integers from Array in C++在 C++ 中从数组中删除重复的整数
【发布时间】:2017-07-05 08:03:47
【问题描述】:

这是我的数组:Arr[8] = {24, 30, 30, 32, 32, 36, 36, 36};

我正在尝试使用 C++ 消除 Arr 中的重复数字。有什么建议么?谢谢!

【问题讨论】:

  • 使用 数据结构(哈希表)过滤掉重复项
  • 为什么是map?将它们放入set 并打印出来。
  • Map 本质上不是哈希表。在 MSVC 实现中,它是红黑树。而且,它是复杂的方式。他可以通过简单的排序简单地对数组进行排序并删除重复项

标签: c++


【解决方案1】:
sort( vec.begin(), vec.end() );
vec.erase( unique( vec.begin(), vec.end() ), vec.end() );

【讨论】:

  • 这显然是为std::vector这样的容器设计的,而不是像int[8]这样的C风格数组。
  • @Jonas - 它非常适合 C 风格的数组。从数组中删除涉及更新大小。而这里的新尺寸只是unique(...) - arr
  • @StoryTeller 是的,我试图指出使用 vec.erase(和 vec.begin() 反对使用 std::begin(vec))。无论哪种方式,这个问题都必须回答。
猜你喜欢
  • 2012-12-04
  • 2021-12-28
  • 2019-03-15
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
  • 1970-01-01
相关资源
最近更新 更多