multimap的介绍及使用

multimap的介绍及使用multimap 的介绍及使用 1 multimap 的介绍 1 multimap 是关联式容器 它按特定的次序 按照 key 来比较 存储由键 key 和值 value 组合而成的元素 多个键值对之间的 key 可以重复 2 在 multimap 中 键值 key 通常用于排序和唯一标识元素 值 value 中存储与键 key 关联的内容

大家好,我是讯享网,很高兴认识大家。

multimap的介绍及使用

1、multimap的介绍

1、multimap是关联式容器,它按特定的次序(按照key来比较)存储由键key和值value组合而成的元素,多个键值对之间的key可以重复
2、在multimap中,键值key通常用于排序和唯一标识元素,值value中存储与键key关联的内容。
3、multimap按照指定的严格弱排序对key进行排序
4、multimap中通过键值访问单个元素比unordered_multimap容器慢,使用迭代器直接遍历multimap的元素可以得到关于key有序的序列
5、multimap的底层通常是平衡二叉搜索树(红黑树)
6、multimap和map的唯一区别是multimap中的key可以重复,而map的key是唯一的


讯享网

2、multimap的构造

函数声明 功能简介
explicit multimap (const key_compare& comp =key_compare(), const allocator_type& alloc = allocator_type()); 构造一个空的multimap
template multimap (InputIterator first, InputIterator last,const key_compare& comp = key_compare(), const allocator_type& alloc = allocator_type()); 用[first,last)区间中的元素构造multimap
multimap (const multimap& x); multimap的拷贝构造

3、multimap的迭代器

函数声明 功能简介
iterator begin () 返回第一个元素的位置
iterator end () 返回最后一个元素的下一个位置
const_iterator begin () const 返回第一个元素的const迭代器
const_iterator end () const 返回最后一个元素下一个位置的const迭代器
reverse_iterator rbegin() 返回第一个元素位置的反向迭代器即rend
reverse_iterator rend() 返回最后一个元素下一个位置的反向迭代器即rbegin
const_reverse_iterator rbegin()const 返回第一个元素位置的const反向迭代器即rend
const_reverse_iterator rend() const 返回最后一元素下一个位置的反向迭代器即rbegin

4、multimap的元素访问

函数声明 功能简介
bool empty ( ) const 检测multimap中的元素是否为空,是返回true,否则返回false
size_type size() const 返回multimap中有效元素的个数
iterator insert (const value_type& val) 在multimap中插入键值对x,注意x是一个键值对,返回值也是键值对:iterator代表新插入元素的位置,bool代表释放插入成功
iterator insert (iterator position, const value_type& val); 在position位置插入值为x的键值对,返回该键值对在multimap中的位置,注意:元素不一定必须插在position位置,该位置只是一个参考
template void insert (InputIterator first, InputIterator last); 在multimap中插入[first, last)区间中的元素
void erase ( iterator position ) 删除position位置上的元素
size_type erase ( const key_type& x ) 删除键值为x的元素
void erase ( iterator first, iterator last ) 删除[first, last)区间中的元素
void swap (multimap<Key,T,Compare,Allocator>& mp ) 交换两个multimap中的元素
void clear ( ) 将multimap中的元素清空
iterator find ( const key_type& x ) 在multimap中插入key为x的元素,找到返回该元素的位置的迭代器,否则返回end
const_iterator find ( const key_type& x ) const 在multimap中插入key为x的元素,找到返回该元素的位置的const迭代器,否则返回cend
size_type count ( const key_type&x ) const 返回key为x的键值在multimap中的个数,注意multimap中key是唯一的,因此该函数的返回值要么为0,要么为1,因此也可以用该函数来检测一个key是否在multimap中

5、multimap的使用

#include <iostream> #include <string> #include <map> using namespace std; int main() { multimap<string, string> m; //向map中插入元素 //将键值对插入map,用pair直接构造键值对 m.insert(pair<string, string>("peach", "桃子")); //用male_pair函数构造键值对 m.insert(make_pair("peach", "桃子")); //若是key不存在,则抛出异常 //m.at("banana") = "香蕉"; //返回m的大小 cout << m.size() << endl; //遍历map中的元素 for (auto& e : m) { cout << e.first << "--->" << e.second << endl; } cout << endl; //删除key为"apple"的元素 m.erase("apple"); if (m.count("apple") == 1) { cout << "apple还在" << endl; } else { cout << "apple被删除" << endl; } system("pause"); return 0; } 

讯享网
小讯
上一篇 2025-04-02 20:19
下一篇 2025-03-21 07:31

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/18873.html