C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素。(具体用法请参考map容器)
函数列表:
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
count() 返回一个元素出现的次数
empty() 如果multimap为空则返回真
end() 返回一个指向multimap末尾的迭代器
equal_range() 返回指向元素的key为指定值的迭代器对
erase() 删除元素
find() 查找元素
get_allocator() 返回multimap的配置器
insert() 插入元素
key_comp() 返回比较key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向mulitmap尾部的逆向迭代器
rend() 返回一个指向multimap头部的逆向迭代器
size() 返回multimap中元素的个数
swap() 交换两个multimaps
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数

构造函数
explicit multimap(const Pred& comp = Pred(), const A& al = A());
multimap(const multimap& x);
multimap(const value_type *first, const value_type *last,
    const Pred& comp = Pred(), const A& al = A());

begin
语法:
  iterator begin();
begin()函数返回一个迭代器,指向multimap的第一个元素。
clear
语法:
  void clear();
clear()函数删除multimap中的所有元素。
count
语法:
  size_type count( const key_type &key );
count()函数返回multimap中键值等于key的元素的个数。
empty
语法:
  bool empty();
empty()函数返回真(true)如果multimap为空,否则返回假(false)。
end
语法:
  iterator end();
end()函数返回一个迭代器,指向multimap的尾部。
equal_range
语法:
  pair equal_range( const key_type &key );
equal_range()函数查找multimap中键值等于key的所有元素,返回指示范围的两个迭代器。
erase
语法:
  void erase( iterator pos );
  void erase( iterator start, iterator end );
  size_type erase( const key_type &key );
erase()函数删除在pos位置的元素,或者删除在start和end之间的元素,或者删除那些值为key的所有元素。
find
语法:
  iterator find( const key_type &key );
find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向multimap尾部的迭代器。
get_allocator
语法:
  allocator_type get_allocator();
get_allocator()函数返回multimap的配置器。
insert
语法:
  iterator insert( iterator pos, const TYPE &val );
  void insert( input_iterator start, input_iterator end );
  pair insert( const TYPE &val );
insert()函数:

插入val到pos的后面,然后返回一个指向这个元素的迭代器。
插入start到end的元素到multimap中。
只有在val不存在时插入val。返回值是一个指向被插入元素的迭代器和一个描述是否插入的bool值。
key_comp
语法:
  key_compare key_comp();
key_comp()函数返回一个比较key的函数。
lower_bound
语法:
  iterator lower_bound( const key_type &key );
lower_bound()函数返回一个迭代器,指向multimap中键值>=key的第一个元素。
max_size
语法:
  size_type max_size();
max_size()函数返回multimap能够保存的最大元素个数。
rbegin
语法:
  reverse_iterator rbegin();
rbegin()函数返回一个指向multimap尾部的逆向迭代器。
rend
语法:
  reverse_iterator rend();
rend()函数返回一个指向multimap头部的逆向迭代器。
size
语法:
  size_type size();
size()函数返回multimap中保存的元素个数。
swap
语法:
  void swap( multimap &obj );
swap()交换obj和现mulitmap中的元素。
upper_bound
语法:
  iterator upper_bound( const key_type &key );
upper_bound()函数返回一个迭代器,指向multimap中键值>key的第一个元素。
value_comp
语法:
  value_compare value_comp();
value_comp()函数返回一个比较元素value的函数。
示例:
#include <iostream>
#include <map>
#include <string>
using namespace std;
void main()
{
   multimap <string ,int> m;//multimap的创建
   m.insert(pair<string,int>("Jack",1));//插入
   m.insert(pair<string,int>("Jack",2));
   m.insert(pair<string,int>("Body",1));
   m.insert(pair<string,int>("Navy",4));
   m.insert(pair<string,int>("Demo",3));
 
   multimap<string,int>::iterator iter;
   for (iter = m.begin();iter != m.end();++iter)//遍历
   {
    cout<<(*iter).first<<"  "<<(*iter).second<<endl;
   }
   m.erase("Navy");//multimap的删除
   cout<<"The element after delete:"<<endl;
   for (iter = m.begin();iter != m.end();++iter)
   {
    cout<<(*iter).first<<"  "<<(*iter).second<<endl;
   }
   //multimap元素的查找
   multimap<string,int>::iterator it;
   int num=m.count("Jack");
   it = m.find("Jack");
   cout<<"the search result is :"<<endl;
   for(int i=1;i<=num;i++)
   {
      cout<<(*it).first<<"  "<<(*it).second<<endl;
   it++;
   }
   if(i==1){ cout<<"can not find!"<<endl; }
}
输出结果:
Body  1
Demo  3
Jack  1
Jack  2
Navy  4
The element after delete:
Body  1
Demo  3
Jack  1
Jack  2
the search result is :
Jack  1
Jack  2

转载于:https://www.cnblogs.com/For-her/p/4166334.html

标准模板库(STL)学习探究之Multimap容器相关推荐

  1. 标准模板库(STL)学习指南之List容器

    原文地址:http://dozb.bokee.com/1872684.html [文章导读] STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件 [正文] 什么是STL呢?STL就是St ...

  2. 标准模板库(STL)学习指南之List链表

    本文转载自天极网,原文地址:http://www.yesky.com/255/1910755.shtml.转载请注明 什么是STL呢?STL就是Standard Template Library,标准 ...

  3. 标准模板库STL学习总结

    标准模板库就是类与函数模板的大集合.STL共有6种组件:容器,容器适配器,迭代器,算法,函数对象和函数适配器. 1.容器: 容器是用来存储和组织其他对象的对象.STL容器类的模板在标准头文件中定义.主 ...

  4. C++标准模板库STL学习

    STL是所有C++编译器和所有操作系统平台都支持的一种库,可以用于所有C++语言编译器和所有平台(Windows/Unix/Linux..).当然标准查模板库中的所有算法,也可以自己用C/C++来实现 ...

  5. 标准模板库(STL)学习指南之set集合

    /* 联合容器将值与关键字联合在一起,使用关键字来查找值, * 提供元素的快速访问,插入元素不能指定位置,容器自动处理插入位置 * STL 提供四种联合容器:set.multiset.map.mult ...

  6. C++标准模板库(STL)学习精要,看此文再配合参考手册轻松成高手!

    这一篇主要对C++中使用最广泛的STL进行学习梳理,参照此文再配合STL参考手册,轻松掌握编程精要! 1.STL基本头文件 STL主要包含容器.算法和迭代器三个部分.容器实现了大多数数据结构:迭代器类 ...

  7. 标准模板库(STL)学习指南之map映射

    转载自CSDN博客:http://blog.csdn.net/bat603/article/details/1456141 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关 ...

  8. 标准模板库(STL)学习指南之vector向量

    vector – 一.  vector可以模拟动态数组 – 二.  vector的元素可以是任意类型T,但必须具备赋值和拷贝能力(具有public 拷贝构造函数和重载的赋值操作符) 三.必须包含的头文 ...

  9. 标准模板库STL(Standard Template Library)

    标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...

最新文章

  1. java-静态变量,单例模式
  2. Linux常用的基本命令head、tail、tar、grep、date、cal(二)
  3. 计算机组成原理_在线作业_2,计算机组成原理_在线作业_2讲述.docx
  4. Python的if条件语句(常用)当为多个判定条件时
  5. 安装与优化   98
  6. 【LeetCode】【数组】题号:*189,旋转数组
  7. headless-virtualbox
  8. html框架 book,HTML框架的基本结构的.doc
  9. Rational Rose建立类图
  10. oracle改密码sql语句,Oracle 修改数据库密码
  11. 【个人学年总结】大一——“蛰伏”的一年
  12. 当“国风综艺”遇上“数字金融”,看国有大行解锁营销新范式
  13. 云服务器搭建Git环境
  14. java编程个人总结_java个人总结
  15. Chrome 55 浏览器推出 Android 离线下载功能
  16. 【观察】神州数码:向云转型再提速,技术创新再发力
  17. VBA小模板,一个不放回的抽奖用的例子
  18. 关于Wrap Lighting与皮肤SSS
  19. 编写一个能求解各种柱体表面积和体积的程序
  20. 吓人!半夜,这个程序从虚拟机里跑出来了!

热门文章

  1. python for else statement test
  2. 一条SQL的奇妙旅行
  3. Python 测试驱动开发读书笔记(二)使用unittest框架扩展功能测试
  4. 翁恺老师C语言学习笔记(七)函数
  5. 06Matplotlib数据可视化--6.2散点图
  6. Fei Labs:FIP-5提案已通过
  7. 花旗银行文章解释DeFi的好处
  8. 《时代周刊》四份NFT杂志封面拍卖结束,总售价为276 ETH
  9. 数据:DOGE近24小时交易额约为107.91亿美元
  10. 济南市区块链产业创新发展行动计划对外公布