C++关联容器之 multimap 关联容器

multimap关联容器用于键以及关联值(通常称为键/值对)的快速保存和存取。multiset和set中使用的许多函数,也能够用于multimap和map中。multimao和map中的元素都是键/值对而不是单个值。插入到一个multiumap或者时,使用的是一个包含键和值的pair的对象。键的顺序由比较函数对象确定。例如,在一个键类型为整数的multimap中,键能够通过比较函数对象less按键的升序排序。multimap中允许重复的键,因此,多个不同的值能与同一个键相关联。这通常成为一对多关系。例如,在一个信用卡交易系统中,一个信用卡账户能有多个相关联的交易;在大学里,一个学生能修多门课程,而一个教授能教多名学生;在军队里,长官能领导多名士兵。multumap支持双向迭代器(而不是随机访问的迭代器)。下面演示关联容器multimap。为了使用multimap类,必须包含头文件

.

#include <iostream>#include <map>using namespace std;typedef multimap<int,double,less<int> > Mmid;//define shaort name for multimap type used in this programint main(){    Mmid pairs;//declare the multimap pairs    cout<<"There are currently "<<pairs.count(15)        <<" pairs with key 15 in the multimap\n";    //insert two value_type objject in pairs    pairs.insert(Mmid::value_type(15,2.7));    pairs.insert(Mmid::value_type(15,99.3));    cout<<"\nAfter insert, there are "<<pairs.count(15)//看15这个键有几对值        <<" paris with key 15\n\n";    //insert five value_type objects in pairs    pairs.insert(Mmid::value_type(30,111.11));    pairs.insert(Mmid::value_type(19,22.22));    pairs.insert(Mmid::value_type(25,33.333));    pairs.insert(Mmid::value_type(20,9.345));    pairs.insert(Mmid::value_type(5,77.54));    cout<<"Multimap paris contains :\nKey\tvalues\n";    for(Mmid::const_iterator iter=pairs.begin();iter!=pairs.end();++iter)        cout<<iter->first<<'\t'<<iter->second<<'\n';    cout<<endl;    return 0;}上面用insert函数在额multimap中添加键/值对。表达式Mmid::value_type(15,2.7)创建一个pairs对象,其中first是int类型的键(15),second是double类型的值
(2.7).    Multimap被定义为mulyimap的typedef的一部分。  pairs.count(15)输出键为15的pairs对象。
最后使用名为iter的const_iterator访问multimap中每个元素中pair对象成员。注意,在输出中键是按升序排列的。

原文链接: https://www.cnblogs.com/huzhongzhong/archive/2011/08/02/2124969.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/29767

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午7:11
下一篇 2023年2月8日 上午7:11

相关推荐