21xrx.com
2024-12-22 16:30:58 Sunday
登录
文章检索 我的文章 写文章
C++如何从容器中删除重复元素
2023-07-05 06:29:46 深夜i     --     --
C++ 容器 删除 重复元素 算法

C++作为一种常用的编程语言,它提供了许多容器来存储和操作数据。然而,有时候我们需要从容器中删除重复的元素,这对于数组和基本数据类型非常简单,但是对于容器的操作则有些麻烦。本文将介绍如何使用C++从容器中删除重复元素。

首先,我们需要一个容器来存储元素,这里以vector作为例子:


std::vector<int> vec = 2;

上述vector中有重复元素,我们需要把这些重复元素删除。一种常见的方法是使用std::unique()函数,该函数可以使容器中相邻的重复元素只保留一个,其他重复的元素会被移到容器的末尾,然后返回新容器中不重复元素的最后一个迭代器。代码如下:


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

执行完上述代码后,vector中的元素顺序为1,其中不重复元素的数量为5。

接下来,我们需要从vector中删除重复元素,可以使用std::vector::erase()函数。由于unique()函数不会完全删除重复元素,我们需要在使用std::erase()函数时指定删除元素的区间,该区间为不重复元素开始的迭代器到末尾迭代器的区间。代码如下:


vec.erase(last, vec.end());

执行完上述代码后,vector中的元素顺序为1,其中所有重复元素都已经被删除。

除了vector以外,其他容器(如set和map)也可以使用类似的方法删除重复元素。总之,C++提供了方便的函数和容器来处理数据,使删除重复元素变得简单和高效。

  
  

评论区

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