21xrx.com
2025-03-30 21:23:57 Sunday
文章检索 我的文章 写文章
C++如何输出出现两次的数组?
2023-06-28 00:57:30 深夜i     20     0
C++ 输出 数组 出现两次

在C++中,输出出现两次的数组需要遍历该数组,并记录每个元素出现的次数。若该元素出现的次数为2,则输出该元素。

以下是代码实现:

#include<iostream>
#include<map>
using namespace std;
int main()
{
  int arr[] = 5// 定义数组
  int n = sizeof(arr) / sizeof(arr[0]);
  // 用map记录每个元素出现的次数
  map<int, int> count;
  for(int i=0; i<n; i++)
  {
    count[arr[i]]++;
  }
  // 遍历map,输出出现2次的元素
  for(map<int, int>::iterator it=count.begin(); it!=count.end(); it++)
  {
    if(it->second == 2)
    
      cout << it->first << " ";
    
  }
  return 0;
}

以上代码中,我们使用了STL中的map容器来记录每个元素的出现次数。遍历map容器,当元素出现次数等于2时,输出该元素。

如果想输出所有出现2次及以上的元素,只需要将if语句中的==改为>=即可。

这种方法的时间复杂度为O(n),因为需要遍历整个数组。但是需要额外的空间来存储map容器,因此空间复杂度为O(n)。如果数组非常大,可能会导致内存不足。在这种情况下,我们可以使用其他算法来解决这个问题。

  
  

评论区

请求出错了