C++ STL map和multimap的简单使用
#include <iostream>
#include <map>
using namespace std;typedef pair<int,double> CustomPair;
void Print(map<int,double> & m){map<int,double>::iterator it;for(it=m.begin();it!=m.end();++it){ //用it遍历mapCustomPair p1=(pair<int,double>)(*it);cout<<p1.first<<",";cout<<std::fixed<<p1.second<<";"<<endl; //std::fixed使p1.second用小数形式输出}
}void PrintM(multimap<int,double> & m){multimap<int,double>::iterator it;for(it=m.begin();it!=m.end();++it){CustomPair p1=(pair<int,double>)(*it);cout<<p1.first<<",";cout<<std::fixed<<p1.second<<";"<<endl;}
}void PrintG(map<int,double,greater<int> > & m){map<int,double,greater<int> >::iterator it;for(it=m.begin();it!=m.end();++it){CustomPair p1=(pair<int,double>)(*it);cout<<p1.first<<",";cout<<std::fixed<<p1.second<<";"<<endl;}
}void PrintG_M(multimap<int,double,greater<int> > & m){multimap<int,double,greater<int> >::iterator it;for(it=m.begin();it!=m.end();++it){CustomPair p1=(pair<int,double>)(*it);cout<<p1.first<<",";cout<<std::fixed<<p1.second<<";"<<endl;}
}int main()
{cout.precision(2); //调整默认输出两位小数map<int,double>::iterator itm;map<int,double,greater<int> >::iterator itmG; //默认为less<>map<int,double> m1;map<int,double,greater<int> > m2;multimap<int,double> m3;multimap<int,double,greater<int> > m4;m1.insert(CustomPair(1,2.0));m1.insert(CustomPair(2,5.0));m1.insert(CustomPair(3,7.0));cout<<"m1:"<<endl;Print(m1);m2.insert(CustomPair(1,2.0));m2.insert(CustomPair(2,5.0));m2.insert(CustomPair(3,7.0));m2.insert(CustomPair(4,8.0));m2.insert(CustomPair(5,11.0));m2.insert(CustomPair(6,6.0));cout<<"m2(greater<int>):"<<endl;PrintG(m2);m3.insert(CustomPair(1,6.0));m3.insert(CustomPair(2,5.0));m3.insert(CustomPair(3,7.0));m3.insert(CustomPair(4,8.0));m3.insert(CustomPair(5,11.0));m3.insert(CustomPair(6,6.0));cout<<"m3:"<<endl;PrintM(m3);m4.insert(CustomPair(1,6.0));m4.insert(CustomPair(2,5.0));m4.insert(CustomPair(3,7.0));m4.insert(CustomPair(4,8.0));m4.insert(CustomPair(5,11.0));m4.insert(CustomPair(6,6.0));cout<<"m4(greater<int>:)"<<endl;PrintG_M(m4);return 0;
}
可以看到map和multimap默认使用键值进行递增排序,我们可以使用map<int,double,greater<int> >类似形式调整输出键值的顺序,灵活使用map和multimap
C++ STL map和multimap的简单使用相关推荐
- 【C++】STL map 与 multimap 用法和区别
参考: https://blog.csdn.net/shuzfan/article/details/53115922 https://www.nhooo.com/cpp/cpp-map-swap-fu ...
- STL map::find 使用方法简单例子
map中的find方法主要用于查找,给定key,可以返回该元素的对应迭代器,然后利用这个迭代器访问value内容. //map::find #include <iostream> #inc ...
- C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
1. STL 映射类简介 map 和 multimap 是键-值对容器,支持根据键进行查找,区别在于,后者能够存储重复的键,而前者只能存储唯一的键. 为了实现快速查找, STL map 和 multi ...
- c++STL容器的Map和multimap
STL容器的Map和multimap map/multimap的简介 map/multimap对象的默认构造 map的插入与迭代器 迭代器遍历 map对象的拷贝构造与赋值 map的大小 map的删除 ...
- C++STL笔记(九):map和multimap详解
--一个华科大差生的12年程序员工作总结 相关博文:<Essential C++>笔记之关联容器map的使用总结 相关博文:C++<STL和泛型编程>容器不带/带有成员函数总结 ...
- C++ map容器和multimap容器(STL map容器)
目录 1. 关联容器和map容器概述 2. map容器 2.1 map的创建以及初始化列表 2.2 map容器的一般常用属性(方法) 2.3 插入数据 2.4 数据的访问和遍历 2.5 数据的删除 2 ...
- STL 之map,multimap
头文件: #include <map> map和multimap的唯一区别:map中不可以包含重复键值,而multimap中可以. 构造方法 mType<type1,type2> ...
- STL中 map 和 multimap
1. 所在头文件<map>. 命名空间std, 声明如下: 1 namespace std{ 2 template <class Key,class T, 3 class Compa ...
- C++语言基础 —— STL —— 容器与迭代器 —— map 与 multimap
[概述] map 和 multimap 是映射数据容器,两者均定义与 <map> 头文件中,其所有元素都是 pair,pair 的第一个元素被视为键值,第二个元素为实值. 他们是基于某一类 ...
最新文章
- thinphp 整合ueditor
- JpA使用自定义类接收数据库返回的结果集
- Spring中property-placeholder的使用与解析
- 机电传动控制第三次作业
- 工作以后如何有效学习
- 微信小程序底部弹框 showActionSheet
- 2022年武汉市小微服务业企业进入规模服务业企业奖励申报条件以及申报流程汇总
- 使用JavaScript重定向到其他网页
- 百度快照劫持是什么意思?如何解决百度快照被劫持、百度劫持
- Zynga公布2020年第二季度财务业绩
- PS3主机今日发售 附官方问答
- python处理grd格式文件_python sklearn中,GBDT模型训练之后,可以查看模型中树的分裂路径吗?...
- 完整的PRD文档包含哪些内容?
- 怎么把一张暗的照片调亮_PS怎么把一张暗的图调亮,就局部
- 新息自适应卡尔曼滤波matlab代码,基于自适应卡尔曼滤波的弱信号跟踪方法与流程...
- 《用计算机画画》教学设计,第8课《简简单单画幅画》教学设计
- X11 Wayland 及 Mir 比较
- Houdini图文笔记:VEX知识点小结(一)
- 关于Unity3d 2020所有国外版本下载(2020.3.0f1以前)
- Mac-如何在任意文件夹下打开终端
热门文章
- python代码写好了怎么运行-python的代码写在哪里,怎么样运行python代码
- python自动化办公excel-Python自动化办公系列之Python操作Excel
- python安装-Python uWSGI 安装配置
- ibm中文语音识别输入系统
- 长度短点的uuid_UUID不失精度,长度改进
- mysql 表级别的锁和行级别的_MySQL 表锁和行锁机制
- 视频质量,分辨率,码率之间的关系 2
- html点击发送qq邮箱_qq邮箱怎么发送文件夹
- centos8 Failed to download metadata for repo ‘base‘: Cannot download repomd.xml
- 2021年下半年 全国计算机技术与软件专业技术资格考试 浙江省合格人员数据分布