📜  C ++ STL中的Map中的默认值(1)

📅  最后修改于: 2023-12-03 14:59:36.508000             🧑  作者: Mango

C++ STL中的Map中的默认值

在C++ STL中,Map是一个常用的容器,用于存储键值对。Map可以让我们通过键快速查找值,类似于字典。

当我们向Map中插入一个不存在的键值对时,Map会自动创建这个键并将其值设置为默认值。那么Map中的默认值是什么呢?本文将为大家做详细解答。

Map中的默认值

对于C++ STL中的Map来说,如果我们想要查找一个不存在的键,那么Map会自动在其中插入这个键,并将其值设置为默认值。但是,Map的默认值会根据值的类型而不同。

对于内置类型,Map的默认值与类型的默认值相同。例如,对于int类型,Map中的默认值为0;对于bool类型,Map中的默认值为false。

对于自定义类型,Map的默认值是由类型的默认构造函数生成的。如果类型没有默认构造函数,则无法将其存储在Map中。

示例

下面是一个简单的示例程序,演示了如何在Map中使用默认值:

#include <iostream>
#include <map>

int main()
{
    std::map<std::string, int> frequencies;
    frequencies["hello"]++;
    frequencies["world"]++;
    frequencies["world"]++;
    
    std::cout << "Frequency of 'hello': " << frequencies["hello"] << std::endl;
    std::cout << "Frequency of 'world': " << frequencies["world"] << std::endl;
    std::cout << "Frequency of 'bye': " << frequencies["bye"] << std::endl;
    return 0;
}

上述程序创建了一个Map,将单词出现的次数存储为值,在向Map中插入键值对时没有显式指定值。在输出时,第一个和第二个输出语句输出了有值的键对应的值,而第三条语句输出了一个没有值的键对应的默认值0。

总结

在C++ STL中的Map中,当我们在查找一个不存在的键时,默认会创建这个键并将其值设置为默认值。对于内置类型,Map的默认值与类型的默认值相同;对于自定义类型,Map的默认值是由类型的默认构造函数生成的。在使用Map时,我们可以利用这一特性方便地管理键值对。