C++ 参考手册

位置:首页 > C++ 参考手册 >容器库 > std::multimap

定义于头文件 <map>
template<

    class Key,
    class T,
    class Compare = std::less<Key>,
    class Allocator = std::allocator<std::pair<const Key, T> >

> class multimap;
(1)
namespace pmr {

    template <class Key, class T, class Compare = std::less<Key>>
    using multimap = std::multimap<Key, T, Compare,
                                  std::pmr::polymorphic_allocator<std::pair<const Key,T>>>;

}
(2) (C++17 起)

multimap 是关联容器,含有关键-值 pair 的已排序列表,同时容许多个入口拥有同一关键。按照应用到关键的比较函数 Compare 排序。搜索、插入和移除操作拥有对数复杂度。

拥有等价关键的关键-值 pair 的顺序就是插入顺序,且不会更改。(C++11 起)

凡在标准库使用比较 (Compare) 概念出,都用描述于比较 (Compare) 上的等价关系确定等价性。不精确地说,若二个对象 ab 互不小于对方: !comp(a, b) && !comp(b, a) ,则认为它们等价。

std::multimap 满足容器 (Container) 具分配器容器 (AllocatorAwareContainer) 关联容器 (AssociativeContainer) 可逆容器 (ReversibleContainer) 的要求。

成员类型

 
成员类型 定义
key_type Key
mapped_type T
value_type std::pair<const Key, T>
size_type 无符号整数类型(通常是 std::size_t
difference_type 有符号整数类型(通常是 std::ptrdiff_t
key_compare Compare
allocator_type Allocator
reference
Allocator::reference (C++11 前)
value_type& (C++11 起)
const_reference
Allocator::const_reference (C++11 前)
const value_type& (C++11 起)
pointer
Allocator::pointer (C++11 前)
std::allocator_traits<Allocator>::pointer (C++11 起)
const_pointer
Allocator::const_pointer (C++11 前)
std::allocator_traits<Allocator>::const_pointer (C++11 起)
iterator 遗留双向迭代器 (LegacyBidirectionalIterator)
const_iterator 常双向迭代器
reverse_iterator std::reverse_iterator<iterator>
const_reverse_iterator std::reverse_iterator<const_iterator>
node_type(C++17 起) 表示容器结点的结点把柄特化

成员类

比较类型为value_type的对象
(类)

成员函数

构造 multimap
(公开成员函数)
析构 multimap
(公开成员函数)
赋值给容器
(公开成员函数)
返回相关的分配器
(公开成员函数)
迭代器
返回指向容器第一个元素的迭代器
(公开成员函数)
返回指向容器尾端的迭代器
(公开成员函数)
返回指向容器最后元素的逆向迭代器
(公开成员函数)
返回指向前端的逆向迭代器
(公开成员函数)
容量
检查容器是否为空
(公开成员函数)
返回容纳的元素数
(公开成员函数)
返回可容纳的最大元素数
(公开成员函数)
修改器
清除内容
(公开成员函数)
插入元素或结点 (C++17 起)
(公开成员函数)
(C++11)
原位构造元素
(公开成员函数)
使用提示原位构造元素
(公开成员函数)
擦除元素
(公开成员函数)
交换内容
(公开成员函数)
(C++17)
从另一容器释出结点
(公开成员函数)
(C++17)
从另一容器接合结点
(公开成员函数)
查找
返回匹配特定键的元素数量
(公开成员函数)
寻找带有特定键的元素
(公开成员函数)
(C++20)
检查容器是否含有带特定关键的元素
(公开成员函数)
返回匹配特定键的元素范围
(公开成员函数)
返回指向首个不小于给定键的元素的迭代器
(公开成员函数)
返回指向首个大于给定键的元素的迭代器
(公开成员函数)
观察器
返回用于比较键的函数
(公开成员函数)
返回用于在value_type类型的对象中比较键的函数。
(公开成员函数)

非成员函数

(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20)
按照字典顺序比较 multimap 中的值
(函数模板)
特化 std::swap 算法
(函数模板)
擦除所有满足特定判别标准的元素
(函数模板)

推导指引(C++17 起)