C++ Multimap

C++ Multimap 首页 / C++入门教程 / C++ Multimap

多映射 C++ STL(标准模板库)的一部分。多重映射是类似的集合,例如映射,用于存储已排序的键/值对,但是与仅存储唯一键的映射不同,多重映射可以具有重复的键

Multimap - 语法

template < class Key,                                    //multimap::key_type  
           class T,                                                    //multimap::mapped_type  
           class Compare = less<Key>,                       //multimap::key_compare  
           class Alloc = allocator<pair<const Key,T> >   //multimap::allocator_type  
           > class multimap;  

Multimap - 参数

key            -  要存储在多重映射中的键数据类型。

type           -  要存储在多重映射中的值的数据类型。

compare -  一个比较类,该类使用两个bool类型相同的参数并返回一个值。此参数是可选的,二进制谓词less是默认值。

alloc         -  分配器对象的类型。此参数是可选的,默认值为分配器

Multimap创建

使用以下语句可以轻松创建multimaps:

typedef pair value_type;

上面的表格将用于创建键类型为 Key_type 和值类型为 value_type multimaps。重要的一点是,multimaps的键和相应的值始终成对插入,不能在multimaps中仅插入键或仅插入值。

Multimap - 例子

#include <iostream>  
#include <map>  
#include <string>  
  
using namespace std;  
  
int main()  
{  
    multimap<string, string> m = {  
            {"India","New Delhi"},  
            {"India", "Learnfk"},  
            {"United Kingdom", "London"},  
            {"United States", "Washington D.C"}  
    };  
      
    cout << "Size of map m: " << m.size() <<endl;      
    cout << "Elements in m: " << endl;  
      
    for (multimap<string, string>::iterator it = m.begin(); it != m.end(); ++it)  
    {  
       cout << "  [" << (*it).first << ", " << (*it).second << "]" << endl;  
    }  
  
    return 0;  
}  

输出:

Size of map m: 4
Elements in m: 
  [India, New Delhi]
  [India, Learnfk]
  [United Kingdom, London]
  [United States, Washington D.C]

Multimap - 成员职能

下面是multimap的所有成员函数的列表:

构造器/解析器

函数说明
constructor构造multimaps
destructor析构函数
operator =将multimaps的元素复制到另一个multimaps。

迭代器

函数说明
begin返回指向多重映射中第一个元素的迭代器。
cbegin 返回指向多重映射中第一个元素的const_iterator。
end返回指向末尾的迭代器。
cend返回一个指向末尾的常量迭代器。
rbegin 返回指向结尾的反向迭代器。
rend 返回指向起点的反向迭代器。
crbegin 返回一个指向末尾的常量反向迭代器。
credit 返回指向起点的常量反向迭代器。

容量

函数说明
empty如果multimaps为空,则返回true。
size返回multimaps中的元素数量。
max_size返回multimaps的最大尺寸。

修饰符

函数说明
insert将元素插入multimaps。
erase从多重映射中擦除元素。
swap交换multimaps的内容。
clear删除multimaps的所有元素。
emplace 构造新元素并将其插入multimaps。
emplace_hint通过提示构造新元素并将其插入multimaps。

观察者

函数说明
key_comp返回键比较对象的副本。
value_comp返回值比较对象的副本。
函数说明
find搜索具有给定键的元素。
count获取与给定键匹配的元素数。
lower_bound将迭代器返回到下限。
upper_bound将迭代器返回上限。
equal_range()返回与给定键匹配的元素的参数。
函数说明
get_allocator返回用于构造multimaps的分配器对象。
FunctionsDescription
operator==检查两个multimaps是否相等。
operator!=检查两个multimaps是否相等。
operator<检查第一个multimaps是否小于其他multimaps。
operator<=检查第一个multimaps是否小于或等于其他。
operator>检查第一个multimaps是否大于其他multimaps。
operator>=检查第一个multimaps是否大于其他。
swap()交换两个multimaps的元素。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

推荐系统三十六式 -〔刑无刀〕

微服务架构实战160讲 -〔杨波〕

白话法律42讲 -〔周甲徳〕

重学前端 -〔程劭非(winter)〕

.NET Core开发实战 -〔肖伟宇〕

零基础实战机器学习 -〔黄佳〕

中间件核心技术与实战 -〔丁威〕

快手 · 移动端音视频开发实战 -〔展晓凯〕

AI大模型系统实战 -〔Tyler〕

好记忆不如烂笔头。留下您的足迹吧 :)