C++中的unordered_map count()

C++中的unordered_map count()

C++ STL提供了一系列容器操作用于存储数据,其中一个重要的容器是unordered_map。unordered_map是一个键值对的哈希表容器,可以提供 O(1) 的复杂度进行存储和查找操作。这里我们要介绍的是unordered_map中的count()函数,用于统计unordered_map中给定键的数量。

count()函数

count()函数的常见用法是:

#include <iostream>
#include <unordered_map>

using namespace std;

int main()
{
    unordered_map<string, int> myMap = {{"apple", 2}, {"banana", 3}, {"orange", 4}, {"pear", 1}};
    int numOfApple = myMap.count("apple");
    cout << "The number of apples is " << numOfApple << endl;
    return 0;
}

上述代码输出的结果是:

The number of apples is 1

该代码中,首先我们定义了一个unordered_map myMap,其中存储了四个水果的名称和对应的数量。然后我们使用count()函数查找了哈希表中键为“apple”的元素数量,并将结果打印输出。因为哈希表特性,键名的数量最多为1个,所以count()函数返回的结果要么是0,要么是1。

此外,我们也可以使用count()函数来遍历unordered_map,如下例所示:

#include <iostream>
#include <unordered_map>

using namespace std;

int main()
{
    unordered_map<string, int> myMap = {{"apple", 2}, {"banana", 3}, {"orange", 4}, {"pear", 1}};

    for (auto& x: myMap) {
        cout << "There are " << x.second << " " << x.first << "(s)" << endl;
    }

    return 0;
}

上述代码遍历了myMap中的所有键值对,并将键和值依次打印输出,结果如下:

There are 3 banana(s)
There are 4 orange(s)
There are 2 apple(s)
There are 1 pear(s)

在遍历的过程中,使用auto& x: myMap语句可以让”x”以引用的形式遍历myMap中的元素。

总结

unordered_map是一个用于存储键值对的哈希表容器,可以通过count()函数按键来获取元素数量,并可以通过遍历unordered_map将所有元素遍历一遍。这是一个高效、灵活且易于使用的STL容器之一,适用于各种场景,是C++程序员的必备工具之一。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程