C++ multimap

C++ multimap

MultimapsC++ STL(标准模板库)的一部分。Multimaps是关联容器,类似于map,存储有序的键值对,但与只存储唯一键的map不同, multimap可以有重复的键 。默认情况下,它使用<运算符来比较键。

例如 :一个员工的multimap,其中员工年龄是键,姓名是值,可以表示为:

Keys Values
23 Nikita
28 Robin
25 Deep
25 Aman

Multimap员工拥有重复的键年龄。

语法

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

参数

key :要存储在multimap中的键数据类型。

type :要存储在multimap中的值的数据类型。

compare :一个比较类,接受两个相同类型的bool参数并返回一个值。此参数是可选的,默认值是二元谓词less<“key”>。

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

创建multimap

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

typedef pair value_type;

上面的表单将用于创建一个键类型为 Key_type ,值类型为 value_type 的多重映射。一个重要的事情是,多重映射的键和相应的值总是以一对形式插入的,你不能只插入键或者仅插入一个值。

示例

#include 
#include 
#include 

using namespace std;

int main()
{
    multimap m = {
            {"India","New Delhi"},
            {"India", "Hyderabad"},
            {"United Kingdom", "London"},
            {"United States", "Washington D.C"}
    };

    cout << "Size of map m: " << m.size() <::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, Hyderabad]
  [United Kingdom, London]
  [United States, Washington D.C]

成员函数

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

构造函数/析构函数

函数 描述
构造函数 构造多重映射
析构函数 多重映射析构函数
赋值运算符 将多重映射的元素复制到另一个多重映射中。

迭代器

功能 描述
begin 返回指向multimap中第一个元素的迭代器。
cbegin 返回指向multimap中第一个元素的常量迭代器。
end 返回指向past-end的迭代器。
cend 返回指向past-end的常量迭代器。
rbegin 返回指向末尾的反向迭代器。
rend 返回指向开头的反向迭代器。
crbegin 返回指向末尾的常量反向迭代器。
crend 返回指向开头的常量反向迭代器。

容量

功能 描述
empty 如果multimap为空,则返回true。
size 返回multimap中元素的数量。
max_size 返回multimap的最大大小。

修饰符

功能 描述
插入 在multimap中插入元素。
删除 从multimap中删除元素。
交换 交换multimap的内容。
清空 删除multimap的所有元素。
构造并插入 构造并将新元素插入multimap。
插入位置构造 构造并将新元素按照提示插入multimap。

观察者

功能 描述
key_comp 返回键比较对象的副本。
value_comp 返回值比较对象的副本。

操作

功能 描述
find 查找具有给定键的元素。
count 获取与给定键匹配的元素数量。
lower_bound 返回下限的迭代器。
upper_bound 返回上限的迭代器。
equal_range() 返回与给定键匹配的元素范围。

分配器

函数 描述
get_allocator 返回一个用于构造multimap的分配器对象。

非成员重载函数

函数 描述
operator== 检查两个multimap是否相等。
operator!= 检查两个multimap是否不相等。
operator< 检查第一个multimap是否小于其他。
operator<= 检查第一个multimap是否小于等于其他。
operator> 检查第一个multimap是否大于其他。
operator>= 检查第一个multimap是否大于等于其他。
swap() 交换两个multimap的元素。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程