C++ STL中的unordered_set count()函数

C++ STL中的unordered_set count()函数

C++的STL库中,有一个无序集合unordered_set,它能够存储哈希表中的元素,并且不允许有重复的元素。这个无序集合的count()函数就是用来统计元素个数的。

unordered_set基础知识

在使用unordered_set之前,我们需要了解它的定义方式和基础操作。

unordered_set的定义方式如下:

unordered_set<int> mySet;

创建一个空的unordered_set容器。

向unordered_set中插入元素的方法是:

mySet.insert(20);
mySet.insert(25);
mySet.insert(10);
mySet.insert(30);

这样我们就在mySet中插入了4个元素。与其他容器类似,我们可以使用迭代器iterator来访问unordered_set中的元素:

unordered_set<int>::iterator it;
for(it=mySet.begin();it!=mySet.end();it++)
    cout<<*it<<endl;

对于unordered_set中的元素,我们可以使用count()函数来进行计数。

unordered_set count()函数详解

count()函数的作用是检查元素是否在unordered_set中,返回值是0或1。如果元素在集合中,则返回1;如果元素不在集合中,则返回0。

言简意赅,count()函数就是用来统计unordered_set中某个元素的个数的。

以下是count()函数的基本用法示例:

unordered_set<int> mySet = {10,20,30,40,50};
cout << mySet.count(10) << endl; // 1,mySet中有一个10
cout << mySet.count(60) << endl; // 0,mySet中没有60

我们可以自己定义一个count()函数来计算元素出现的次数:

#include<iostream>
#include<unordered_map>
using namespace std;

int count(int arr[], int n, int x) {
    unordered_map<int,int> mp;
    for(int i=0; i<n; i++) {
        mp[arr[i]]++;
    }
    return mp[x];
}

int main() {
    int arr[] = {10,20,30,20,30,40,50,10,20,10};
    int n = sizeof(arr)/sizeof(arr[0]);
    int x = 20;
    cout << count(arr, n, x) << endl; // 3
    return 0;
}

在这段代码中我们定义了一个count()函数来计算数组arr[]中x出现的次数,使用了unordered_map容器来存储元素出现的次数。

函数使用方法为,我们传入了三个参数:数组arr[],数组长度n和元素x。函数内部使用了for循环来遍历数组,并用unoredered_map来记录元素出现的次数。

最后,我们使用count()函数返回了元素x出现的次数。

总结

C++的STL库中,unordered_set容器可以存储哈希表中的元素,并且不允许有重复的元素。我们可以使用count()函数来统计unordered_set中某个元素的个数。

在count()函数内部,我们可以自定义一个元素计数算法。最常用的方法是使用unordered_map来记录元素出现的次数,然后返回元素出现的次数即可。

尽管unordered_set的count()函数使用简单,但在实际应用中起到了非常重要的作用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程