21xrx.com
2024-11-22 09:58:40 Friday
登录
文章检索 我的文章 写文章
C++如何删除容器中的重复元素?
2023-06-27 22:22:19 深夜i     --     --
C++ 容器 删除 重复元素

在C++中,容器是一个非常重要的概念,尤其是在处理大量数据时。然而,当容器中存在重复元素时,会给我们的程序带来一定的麻烦。为了解决这个问题,我们可以使用C++提供的一些方法来删除容器中的重复元素。

方法一:使用STL库中的unique函数

STL(Standard Template Library)是C++的一个标准模板库,其中包含了各种数据结构和算法。unique函数就是其中的一种,它可以移除相邻的重复元素,并返回一个指向新的重复结束的元素的迭代器。

以下是一个使用STL库中的unique函数来删除容器中重复元素的简单示例。


#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

int main() {

 // 创建一个vector容器,并添加一些重复元素

 vector<int> vec = 2;

 // 使用unique函数进行去重

 auto it = unique(vec.begin(), vec.end());

 // 输出去重后的内容

 for (auto i = vec.begin(); i != it; ++i)

  cout << *i << " ";

 cout << endl;

 return 0;

}

方法二:使用STL库中的set容器

set是一个由C++ STL提供的用于存储一组元素的容器。set容器的特点是其中元素的值都是唯一的,因此可以利用这个特性来删除重复元素。

以下是一个使用STL库中的set容器来删除容器中重复元素的简单示例。


#include <iostream>

#include <set>

#include <vector>

using namespace std;

int main() {

 // 创建一个vector容器,并添加一些重复元素

 vector<int> vec = 4;

 // 定义一个set容器,并将vector中的所有元素添加到其中

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

 // 输出去重后的内容

 for (auto i:s)

  cout << i << " ";

 cout << endl;

 return 0;

}

总结

以上是两种在C++中删除容器中重复元素的方法。使用STL库中的unique函数可以快速地去除容器中的相邻重复元素,而使用set容器则可以保证容器中的元素唯一,从而达到删除重复元素的目的。在实际开发中,我们需要根据自己的需求选择合适的方法。

  
  

评论区

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