C++ STL 中的 multiset count() 函数
在C++ STL中,multiset是一种关联容器,其中的元素根据其值而不是其位置来进行存储。multiset中不允许有两个相同的元素。STL提供了一些函数来操作multiset,并且其中一个最有用的函数是count()。
count() 函数的定义和作用
count()函数是STL multiset中的一个函数,用于计算multiset内指定元素的个数。
该函数的定义如下:
size_t count( const key_type& key ) const;
其中key
为指定的元素值,返回值为指定元素在multiset中出现的频率。
举个例子,假设我们有一个multiset,其中包含如下元素:{1,1,2,3,3,3}。那么,若想计算元素3在multiset中出现的次数,则可使用count()函数进行计算。代码如下:
#include <iostream>
#include <set>
using namespace std;
int main() {
multiset<int> myset = {1,1,2,3,3,3};
int count_num = myset.count(3);
cout << "Count of 3 is " << count_num << endl; // 输出结果为 Count of 3 is 3
return 0;
}
在上面的示例代码中,我们声明了一个multiset,其中包含6个元素。接着,我们使用count()函数计算数字3在multiset中出现的次数,并将结果赋给变量count_num。最后,我们打印出计算结果。
count() 函数的使用案例
下面,我们来看一个使用count()函数的实际案例。
假设我们有一个包括多个学生的unsigned int型向量,每个学生有一个唯一的学号。现在,我们想要计算某个学生在向量中出现的次数。
具体做法是:我们将该向量建成一个multiset,每个学生的学号作为一个元素,然后使用count()函数计算某个学生在multiset中出现的次数。
代码如下:
#include <iostream>
#include <set>
#include <algorithm>
#include <vector>
#include <iterator>
using namespace std;
int main() {
vector<unsigned int> vec = {101, 102, 103, 104, 102, 105, 101, 103, 104, 106};
multiset<unsigned int> idset(vec.begin(), vec.end());
cout << "Enter the student ID: "; // 输入要查询的学生学号
unsigned int id;
cin >> id;
int count_num = idset.count(id);
cout << "Student " << id << " appears " << count_num << " times." << endl;
return 0;
}
在上面的示例代码中,我们首先声明了一个unsigned int型向量,其中包含了一些学生的学号。接着,我们将这个向量建立成了一个multiset。接下来,我们用户输入一个学生学号,并使用count()函数计算该学生在multiset中出现的次数。
程序执行结果如下:
Enter the student ID: 103
Student 103 appears 2 times.
结论
如此看来,C++ STL 中的 multiset count() 函数使用非常简单,但是在大量的数据处理中,我们可以发现,其实这个函数是非常好用的。不仅仅可以计算某个元素在multiset中出现的个数,还可以用来快速地对一些数据进行计数和整合。