21xrx.com
2024-11-05 14:57:15 Tuesday
登录
文章检索 我的文章 写文章
C++中使用map进行去重操作
2023-07-01 14:41:21 深夜i     --     --
C++ map 去重操作

在C++中,有时我们需要对一个容器内的元素进行去重操作,这时可以使用STL中的map来实现。map是一个关联容器,通过键值对的方式存储元素,而且保证元素按照键的大小排序,且键不能重复。这就可以满足我们去重的需求。

假设我们有一个数组a,需要去重并输出结果。我们可以先定义一个空的map容器,然后遍历数组将每个元素插入到map中。由于map不能保存重复的键,因此插入时如果有相同的键,则新插入的会覆盖旧值。

以下是完整代码:


#include <iostream>

#include <map>

using namespace std;

int main()

{

  int a[] = 1;

  int n = sizeof(a) / sizeof(a[0]);

  map<int, int> mp;

  for (int i = 0; i < n; i++) {

    mp[a[i]] = i; //插入元素到map中

  }

  for (auto it = mp.begin(); it != mp.end(); it++)

    cout << it->first << " "; //输出map中的键

  

  return 0;

}

运行结果为:1 2 3 4 5。可以看到,map中保存的是元素的键,而且已经去重了。

需要注意的是,如果我们只需要去重操作而不需要排序,可以使用unordered_map来替代map,其用法类似,但是不会进行排序,插入和查找速度更快。

  
  

评论区

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