21xrx.com
2024-11-22 09:42:21 Friday
登录
文章检索 我的文章 写文章
C++ 教程:如何删除 vector 中重复元素?
2023-06-27 14:55:57 深夜i     --     --
C++ vector 删除 重复元素 教程

在使用C++语言编写代码的过程中,我们通常需要使用vector来存储数据。然而,其中可能会出现重复元素,这会影响我们对数据的处理和分析。解决这个问题的方法是删除vector中的重复元素,下面给出两种实现方法。

方法一:

使用C++中的STL库中提供的unique函数。这个函数会将vector中的重复元素放在vector末尾,然后返回一个指向重复元素后面那个元素的迭代器。我们可以在这个迭代器和vector的末尾之间的元素都删除掉,代码如下所示:


vector<int> vec = 1;

// 使用STL库函数unique去重

auto ip = std::unique(vec.begin(), vec.end());

//删除重复元素后的vector

vec.resize(std::distance(vec.begin(), ip));

方法二:

使用set容器对vector进行去重。set是一个基于红黑树实现的容器,它会自动将元素排序并去重,我们可以先将vector中的元素复制到set中,然后再将set中的元素复制回vector中。代码如下所示:


vector<int> vec = 5;

set<int> s(vec.begin(), vec.end());

//清空vector

vec.clear();

//将set中的不重复元素复制回vector

vec.assign(s.begin(), s.end());

以上两种方法都可以有效地去除vector中的重复元素,并且两种方法的效率都比较高。在实际编程中,可以根据具体情况选择方法,以便提高代码的效率和可读性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复