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()函数使用简单,但在实际应用中起到了非常重要的作用。