#include <iostream>
#include <map>
#include <string>

using namespace std;

int main()
{
  map<int, string> map1;
  multimap<int, string> multimap1;

  map1.insert(map<int,string>::value_type(1,"One"));
  map1.insert(map<int, string>::value_type(2, "Two"));
  map1.insert(map<int, string>::value_type(3, "Three"));
  map1.insert(make_pair(-1,"Minus One"));
  map1.insert(pair<int,string>(1000,"Four"));
  map1[100] = "Five";

  cout << "map1 size:" << map1.size() << endl;
  map<int, string>::const_iterator map_iter;
  for (map_iter =map1.begin();map_iter !=map1.end();++map_iter)
  {
    cout << "key:" << map_iter->first << " value:" << map_iter->second.c_str() << endl;
  }

  cout << "---------------------------"<< endl;

  multimap1.insert(multimap<int,string>::value_type(1,"One"));
  multimap1.insert(multimap<int, string>::value_type(1, "One"));
  multimap1.insert(multimap<int, string>::value_type(2, "Two"));
  multimap1.insert(pair<int,string>(2,"Test"));
  multimap1.insert(pair<int,string>(2,"Test2"));
  multimap1.insert(make_pair<int,string>(3,"Test"));

  cout << "multimap size:" << multimap1.size() << endl;
  multimap<int, string>::const_iterator multimap_iter;
  for (multimap_iter = multimap1.begin();multimap_iter != multimap1.end();++multimap_iter)
  {
    cout << "key:" << multimap_iter->first << " value:" << multimap_iter->second.c_str() << endl;
  }

  cout << "element count:" << multimap1.count(1) << endl;

  cout << "-----------------------------------------" << endl;
  multimap<int, string>::const_iterator iter2;
  iter2 = multimap1.find(2);
  if (iter2 != multimap1.end())
  {
    size_t element_count = multimap1.count(2);
    for (int k=0;k<element_count;k++)
    {
      cout << "find: "<<k<<" " << iter2->first << " " << iter2->second.c_str() << endl;
      ++iter2;
    }
    
  }
  else
  {
    cout << "not found..." << endl;
  }

  cout << "---------------------------------------------"<<endl;
  if (multimap1.erase(2)>0)
  {
    cout << "delete element success..."<<endl;
  }
  multimap<int, string>::const_iterator multimap_iter1;
  for (multimap_iter1 = multimap1.begin(); multimap_iter1 != multimap1.end(); ++multimap_iter1)
  {
    cout << "key:" << multimap_iter1->first << " value:" << multimap_iter1->second.c_str() << endl;
  }
  cout << "---------------------------------------------" << endl;
  multimap<int, string>::iterator iter3 = multimap1.find(1);
  if (iter3 != multimap1.end())
  {
    size_t element_count = multimap1.count(1);
    for (int k=0;k<element_count;k++)
    {
      iter3 = multimap1.find(1);
      multimap1.erase(iter3);
      //++iter3;
      cout << "delete success..." << endl;
    }
  }
  cout << "---------------------------------------------" << endl;
  multimap<int, string>::const_iterator multimap_iter2;
  for (multimap_iter2 = multimap1.begin(); multimap_iter2 != multimap1.end(); ++multimap_iter2)
  {
    cout << "key:" << multimap_iter2->first << " value:" << multimap_iter2->second.c_str() << endl;
  }

  system("pause");
  return 0;
}

======================================

map1 size:6
key:-1 value:Minus One
key:1 value:One
key:2 value:Two
key:3 value:Three
key:100 value:Five
key:1000 value:Four
---------------------------
multimap size:6
key:1 value:One
key:1 value:One
key:2 value:Two
key:2 value:Test
key:2 value:Test2
key:3 value:Test
element count:2
-----------------------------------------
find: 0 2 Two
find: 1 2 Test
find: 2 2 Test2
---------------------------------------------
delete element success...
key:1 value:One
key:1 value:One
key:3 value:Test
---------------------------------------------
delete success...
delete success...
---------------------------------------------
key:3 value:Test
请按任意键继续. . .

c++ map multimap操作的更多相关文章

  1. STL中的map/multimap小结

    (1)使用map/multimap之前必须包含头文件<map>:#include<map> 并且和所有的关联式容器一样,map/multimap通常以平衡二叉树来完成 (2)n ...

  2. C++ map multimap

    map multimap map,multimap key-value对容器,也叫字典,map中不能存放key相同的元素,而multimap可以,容器中元素默认按升序排序 map multimap的相 ...

  3. STL:map/multimap用法详解

    map/multimap 使用map/multimap之前要加入头文件#include<map>,map和multimap将key/value当作元素,进行管理.它们可根据key的排序准则 ...

  4. 09--STL关联容器(map/multimap)

    一:map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...

  5. c/c++ 标准库 map multimap元素访问

    标准库 map multimap元素访问 一,map,unordered_map下标操作 下标操作种类 功能描述 c[k] 返回关键字为k的元素:如果k不在c中,添加一个关键字为k的元素,并对其初始化 ...

  6. map && multimap

    map map 的意思是映射.用法一般是     map<char, int>mp 按照我的理解,map 类似于一个高级的数组.前面的数据类型 char 相当于下脚标,而数组元素的值就对应 ...

  7. STL::map/multimap

    map: 默认根据 key 排序(从小到大),能够通过 backet operator(operator [ ]) 来获取元素,内部由二叉搜索树来实现(binary search trees). mu ...

  8. STL之六:map/multimap用法详解

    转载于:http://blog.csdn.net/longshengguoji/article/details/8547007 map/multimap 使用map/multimap之前要加入头文件# ...

  9. STL——容器(Map & multimap)的拷贝构造与赋值

    1. Map & multimap 的拷贝构造与赋值 map(const map &mp);               //拷贝构造函数 map& operator=(con ...

随机推荐

  1. c语言二维数组赋值

    , n=;//行数和列数 pattern = (char**)malloc(sizeof(char*)*m);//申请一组一维指针空间. ; i<m; i++) pattern[i] = (ch ...

  2. 机器学习(十)—聚类算法(KNN、Kmeans、密度聚类、层次聚类)

    聚类算法 任务:将数据集中的样本划分成若干个通常不相交的子集,对特征空间的一种划分. 性能度量:类内相似度高,类间相似度低.两大类:1.有参考标签,外部指标:2.无参照,内部指标. 距离计算:非负性, ...

  3. 【转】优秀的Go开源项目

    http://www.mhtclub.com/post/60   目录 优秀的Go开源项目 中文Go语言学习教程 国外的Go语言教程 openbilibili源码 Go作为Google2009年推出的 ...

  4. notify()和 notifyAll()有什么区别?(未完成)

    notify()和 notifyAll()有什么区别?(未完成)

  5. cmd生成大文件

    用cmd生成一个大小一定的文件 输入fsutil file createnew  文件位置  文件大小(以字节为单位1024b=1kb) 列如:fsutil file createnew  d:\my ...

  6. BZOJ 4873 寿司餐厅 网络流

    最大权闭合子图 1.每个区间收益(i,j)对应一个点 权值为正连S 负连T 2.每个区间收益向其子区间收益(i+1,j)与(i,j-1)对应的两个点连边 容量为INF 3.每个寿司类型对应一个点 连一 ...

  7. Java锁--Condition

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3496716.html Condition介绍 Condition的作用是对锁进行更精确的控制.Condi ...

  8. 2019HDU多校第四场 Just an Old Puzzle ——八数码有解条件

    理论基础 轮换与对换 概念:把 $S$ 中的元素 $i_1$ 变成 $i_2$,$i_2$ 变成 $i_3$ ... $i_k$ 又变成 $i_1$,并使 $S$ 中的其余元素保持不变的置换称为循环, ...

  9. BZOJ 5496: [2019省队联测]字符串问题 (后缀数组+主席树优化建图+拓扑排序)

    题意 略 分析 考场上写了暴力建图40分溜了-(结果只得了30分) 然后只要优化建边就行了 首先给出的支配关系无法优化,就直接A向它支配的B连边. 考虑B向以B作为前缀的所有A连边,做一遍后缀数组,两 ...

  10. javaMail 详解

    原文:http://www.matrix.org.cn/resource/article/44/44101_JavaMail.html 一.JavaMail API简介JavaMail API是读取. ...