21xrx.com
2024-12-23 01:29:52 Monday
登录
文章检索 我的文章 写文章
C++如何求解数组中不同元素的个数
2023-06-23 05:02:18 深夜i     --     --
C++ 数组 不同元素 个数 求解

在C++中,我们经常需要对数组进行不同元素的操作,其中之一就是求解数组中不同元素的个数。在本文中,我们将介绍两种求解数组中不同元素个数的方法——使用set和使用map。

使用set求解不同元素个数:

在C++中,set是一种关联容器,可以存放无序且不重复的元素。因此,我们可以利用set容器来求解数组中不同元素的个数。具体步骤如下:

1. 创建一个set容器,用于存储不同的元素。

2. 遍历数组的每一个元素,将其添加到set容器中。

3. 最后,使用set容器的size()函数就可以得到不同元素的个数。

示例代码如下:


#include <iostream>

#include <set>

using namespace std;

int main()

{

  int arr[] = 1;

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

  set<int> s;

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

  {

    s.insert(arr[i]);

  }

  cout << "Different elements in the array: " << s.size() << endl;

  return 0;

}

使用map求解不同元素个数:

在C++中,map也是一种关联容器,可以存储键值对,其中键是唯一的。因此,我们可以利用map容器来求解数组中不同元素的个数。具体步骤如下:

1. 创建一个map容器,用于存储每个元素出现的次数。

2. 遍历数组的每一个元素,将其作为键,将其出现的次数作为值存储到map容器中。

3. 最后,遍历map容器,统计值为1的键的个数,即为不同元素的个数。

示例代码如下:


#include <iostream>

#include <map>

using namespace std;

int main()

{

  int arr[] = 4;

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

  map<int, int> m;

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

  {

    m[arr[i]]++;

  }

  int count = 0;

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

  {

    if (it->second == 1)

    {

      count++;

    }

  }

  cout << "Different elements in the array: " << count << endl;

  return 0;

}

总结:

以上就是使用set和map求解数组中不同元素的个数的方法,两种方法各有优缺点,根据不同的情况选择合适的方法。如果对数组元素的大小和范围没有要求,可以选择使用set;如果需要统计每个元素出现的次数,或对数组元素范围有特定要求,可以使用map。无论哪种方法,都可以很快地实现对数组中不同元素个数的求解。

  
  
下一篇: C++的特性

评论区

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