21xrx.com
2024-12-22 17:17:08 Sunday
登录
文章检索 我的文章 写文章
C++ multimap的用法及示例详解
2023-09-16 02:40:21 深夜i     --     --
C++ multimap usage example detailed

C++ multimap是一个关联容器,它可以存储键值对,并且允许相同键对应多个值。它基于红黑树实现,其中的键是被排序的,这使得multimap成为了一个非常有用的工具。

multimap的用法非常简单。首先,我们需要包含头文件。然后,我们可以使用multimap关键字创建一个multimap对象,如下所示:


std::multimap<int, std::string> myMultimap;

这里我们创建了一个以整数为键,字符串为值的multimap。

接下来,我们可以使用insert()函数将键值对插入到multimap中。insert()函数接受一个键值对作为参数,可以一次插入多个键值对。


myMultimap.insert(std::make_pair(1, "apple"));

myMultimap.insert(std::make_pair(2, "banana"));

myMultimap.insert(std::make_pair(1, "orange"));

在上面的示例中,我们插入了三个键值对。注意,键1是重复的,这是multimap与普通的map的不同之处。

我们可以使用迭代器遍历multimap,并访问其中的键和值:


for (auto it = myMultimap.begin(); it != myMultimap.end(); ++it)

  std::cout << "Key: " << it->first << " Value: " << it->second << std::endl;

输出将会是:


Key: 1 Value: apple

Key: 1 Value: orange

Key: 2 Value: banana

注意,multimap中的元素是按键的顺序排序的。

我们还可以使用count()函数来查找特定键的值的数量:


int count = myMultimap.count(1);

std::cout << "Number of values with key 1: " << count << std::endl;

输出将会是:


Number of values with key 1: 2

count()函数返回特定键的值的数量。在这个例子中,键1有两个值。

除了count()函数之外,我们还可以使用equal_range()函数来获取特定键的值的范围:


auto range = myMultimap.equal_range(1);

for (auto it = range.first; it != range.second; ++it)

  std::cout << "Value with key 1: " << it->second << std::endl;

输出将会是:


Value with key 1: apple

Value with key 1: orange

在上面的示例中,我们获取了键1对应的值的范围,并遍历输出了这些值。

总的来说,C++ multimap是一个非常有用的工具,它可以存储允许重复键的键值对,并且允许我们按键的顺序访问这些值。上述示例提供了multimap的使用方法和一些常见的操作,希望能对你有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复