multimap 是关联容器,含有键值对的已排序列表,其功能与map一样,唯一不同的是,它容许多个元素拥有同一键。本篇学习map的创建,初始化,赋值操作operator=, empty,size,max_size

示例代码:

#include <iostream>
#include <map>
#include <string>using namespace std;void multimapInit()
{string str =  "《凉州词(王翰)》 葡萄美酒夜光杯,欲饮琵琶马上催。醉卧沙场君莫笑,古来征战几人回? ";//1.创建multimapmultimap<int, string> multimap1;cout << "multimap1.size = " << multimap1.size() << " multimap1.empty = " << multimap1.empty() << " multimap1.max_size = " << multimap1.max_size() << endl;multimap1.insert({1, "persimmon柿子"});multimap1.insert({5, "lichee荔枝"});multimap1.insert({3, "longan龙眼"});multimap1.insert({4, "loquat枇杷"});multimap1.insert({3, "shaddock柚子"});multimap1.insert({2, "persimmon柿子"});cout << "multimap1.size = " << multimap1.size() << " multimap1.empty = " << multimap1.empty() << " multimap1.max_size = " << multimap1.max_size() << endl;cout << "multimap1的值为:" << endl;multimap<int, string>::iterator iter1;for(iter1 = multimap1.begin(); iter1 != multimap1.end(); iter1++){std::string tempStr = iter1->second;//这样可以cout << iter1->first << ": " << iter1->second << endl;//为什么不能这样输出,加上头文件#include<string>才可以//cout << iter1->first << ": " << iter1->second.c_str() << endl;}//2.列表初始化multimap<int, string> multimap2 = {{4, "megranate石榴" },{2, "durian榴莲"   },{6, "mangosteen山竹"   },{2, "mango芒果"   },{3, "papaya木瓜"   },{1, "papaya木瓜"}};cout << "multimap2.size = " << multimap2.size() << " multimap2.empty = " << multimap2.empty() << " multimap2.max_size = " << multimap2.max_size() << endl;cout << "multimap2的值为:" << endl;for(auto &val: multimap2){cout << val.first << ": " << val.second << endl;}//3.赋值初始化multimap<int, string> multimap3 = multimap2;multimap<int, string>::iterator iter3 = multimap3.begin();cout << "multimap3.size = " << multimap3.size() << " multimap3.empty = " << multimap3.empty() << " multimap3.max_size = " << multimap3.max_size() << endl;cout << "multimap3的值为:" << endl;while (iter3 != multimap3.end()){cout << iter3->first << ": " << iter3->second << endl;iter3++;}//4.拷贝初始化multimap<int, string> multimap4(multimap1);cout << "multimap4.size = " << multimap4.size() << " multimap4.empty = " << multimap4.empty() << " multimap4.max_size = " << multimap4.max_size() << endl;auto iter4 = multimap4.begin();cout << "multimap4的值为:" << endl;while (iter4 != multimap4.end()){cout << iter4->first << ": " << iter4->second << endl;iter4++;}//5.范围初始化multimap<int, string> multimap5(multimap2.begin(), multimap2.end());cout << "multimap5.size = " << multimap5.size() << " multimap5.empty = " << multimap5.empty() << " multimap5.max_size = " << multimap5.max_size() << endl;auto iter5 = multimap5.begin();cout << "multimap5的值为:" << endl;while (iter5 != multimap5.end()){cout << iter5->first << ": " << iter5->second << endl;iter5++;}//6.移动构造函数multimap<int, string> multimap6(std::move(multimap1));cout << "multimap6.size = " << multimap6.size() << " multimap6.empty = " << multimap6.empty() << " multimap6.max_size = " << multimap6.max_size() << endl;auto iter6 = multimap6.begin();cout << "multimap6的值为:" << endl;while (iter6 != multimap6.end()){cout << iter6->first << ": " << iter6->second << endl;iter6++;}
}int main()
{multimapInit();cout << "Hello, world!" << endl;return 0;
}

运行结果:

参考:

https://zh.cppreference.com/w/cpp/container/multimap

multimap学习之创建,初始化,赋值操作operator=, empty,size,max_size相关推荐

  1. multiset学习之创建,初始化,赋值操作operator=, empty,size

    本篇开始学习multiset,与set相比,multiset可以有多个相关的关键字,其它也set的功能一样,下面我们先来学习它的创建,初始化,赋值操作operator=, empty,size等相关操 ...

  2. set学习之创建,初始化,赋值操作operator=, empty,size

    set 是关联容器,含有 Key 类型对象的已排序集.用比较函数 比较 (Compare) 进行排序.搜索.移除和插入拥有对数复杂度. set 通常以红黑树实现.本篇学习set的创建及初始化. 示例代 ...

  3. C语言--关于指针两种初始化赋值操作

    首先,什么叫做指针的初始化?  int * p = NULL:在定义指针变量p的同时把p的值设置为0x00000000;而不是把*p的值设置为0x00000000.这个过程叫做初始化. 探讨: int ...

  4. forword_list学习之创建,初始化assign,赋值操作operator=, 元素访问front,交换内容swap,检查容器是否为空empty

    forword_list是C++11新增的一个顺序容器,它是支持从容器的任何位置快速插入和移动元素的容器.不支持快速随机访问.它实现为单链表,且实质上与其在C中实现相比无任何开销.与std::list ...

  5. pandas学习笔记三之赋值操作

  6. matlab学习笔记11_3高维数组操作 filp, shiftdim, size, permute, ipermute

    一起来学matlab-matlab学习笔记11 11_3 高维数组处理和运算 filp, shiftdim, size, permute, ipermute 觉得有用的话,欢迎一起讨论相互学习~ fi ...

  7. 【C++】类的成员初始化表与构造函数内赋值操作

    我们常常在初始化类数据成员的时候,对使用初始化表和在构造函数中十分困惑,这二者有什么区别呢?我们应该如何选择呢? 先举个简单的例子,看下面的两段代码: 代码A: inline Account::Acc ...

  8. multimap学习之迭代器操作begin,cbegin(C++11),end,cend(C++11),rbegin,crbegin

    本篇学习multimap的迭代器操作,具体的函数有如下: begin cbegin (C++11) 返回指向起始的迭代器 (公开成员函数) end cend (C++11) 返回指向末尾的迭代器 (公 ...

  9. 关于学习Python的一点学习总结(26->自定义函数及创建初始化数据结构函数)

    62.自定义函数: 1.判断某个对象是否可调用,使用内置函数callable >>> import math>>> x=1>>> y=math.s ...

最新文章

  1. ArduinoYun快速入门教程第1章ArduinoYun概览
  2. Cmake的install与file命令的区别
  3. java plug in错误_Eclipse启动失败 - 在安装BlackBerry Java Plug-in for Eclipse v1.3之后
  4. 双目标帕累托优化_多目标稳健性决策规划(MORDM)
  5. 字母框如何影响UI内容的理解
  6. 转:链表相交问题 详解
  7. 深入理解SpringBoot(3)
  8. fuzzy仿真 MATLAB,基于Matlab的Fuzzy-PID控制器的设计与仿真
  9. 【CSS3】纯CSS代码实现模拟时钟,+js对时功能。
  10. 有一定的php基础,求推荐PHP框架,本人有一定PHP基础。
  11. 微信小程序 图片显示不完全
  12. html5在线留言表单代码,HTML CSS样式用户留言表单代码分享
  13. 车辆控制-稳态误差分析-前馈
  14. 参数方程绘制球面、椭球面、环面_OpenGL
  15. grokking algorithms K-nearest neighbors第十章 K-邻近算法 中文翻译
  16. html内嵌子页面并配合CGI进行页面更新
  17. VBA-EXCEL统计数据
  18. 实用网站/好网站/冷门网站
  19. 4.15 每周作业 —— 简单DP
  20. 【Python实战】Python对中国500强排行榜数据进行可视化分析

热门文章

  1. web前端卡片样式_css完成卡片式图片结果_WEB前端开发
  2. c++简单使用boost
  3. 【3D游戏编程与设计】一 游戏的分类与热点
  4. STM32 深入浅出(新手必看)
  5. 重置Nokia BH-221蓝牙耳机的步骤
  6. 三相桥式PWM整流电路 整流电路采用全控型三相桥式整流
  7. 中国移动创马通信能力开放专题赛完美落幕,菊风VoLTE视频客服项目荣获二等奖
  8. 操作layui 的checkbox
  9. 《大数据原理:复杂信息的准备、共享和分析》一一
  10. 基于单片机串口远程多路温湿度采集仿真-基于单片机ADC0809八路电压采集系统设计-基于单片机16x32点阵多模式显示仿真设计-基于单片机餐厅呼叫控制系统仿真设计-基于STM32单片机的智能水杯设计