博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.5 map
阅读量:5797 次
发布时间:2019-06-18

本文共 1146 字,大约阅读时间需要 3 分钟。

hot3.png

#include<map>

key/value对

采用红黑树实现,键值不允许重复

用法与set类似

创建map:

map
m;m["haha"] = 11.1;m["hehe"] = 22.2;for (map
::iterator it = m.begin(); it != m.end(); ++it) cout << (*it).first << " : " << (*it).second << endl;

删除元素:

删除某个迭代器位置上的元素、等于某个键值的元素、一个迭代器区间上的元素

m.erase("haha");

清空map

m.clear();

反向遍历:

for(map
::reverse_iterator rit = m.rbegin(); rit != m.rend(); ++rit) cout << (*rit).first << " : " << (*rit).second << endl;
元素的搜索:

map<string, float> = m.find("hehe"); //按关键字搜索,如果找到,返回迭代器位置;未找到,返回end()。

自定义比较函数与set自定义比较函数相同:

1、是结构体,重载"<";

2、不是结构体,构造一个结构体,重载"()",逻辑代码实现比较

struct desComp{    bool operator()(const string &s1, const string &s2)    {        if (a != b) return a > b;        else return a > b;    }};map
m;m["haha"] = 11.1;m["hehe"] = 22.2;for (map
::it = m.begin(); it != m.end(); ++it) cout << (*it).first << " : " << (*it).second << endl;
用map实现数字分离(字符映射为数字)

map
m;for (int i = 0; i < 10; ++i) m['0'+i]=i;string s="123456";int a = m[s[3]];//取出第三位上的数字
以上方法采用map<int, char>结构就可以将数字映射为字符

转载于:https://my.oschina.net/kuailechengxuyuan/blog/831365

你可能感兴趣的文章
AIX 配置vncserver
查看>>
windows下Python 3.x图形图像处理库PIL的安装
查看>>
【IL】IL生成exe的方法
查看>>
network
查看>>
SettingsNotePad++
查看>>
centos7安装cacti-1.0
查看>>
3个概念,入门 Vue 组件开发
查看>>
没有JS的前端:体积更小、速度更快!
查看>>
数据指标/表现度量系统(Performance Measurement System)综述
查看>>
GitHub宣布推出Electron 1.0和Devtron,并将提供无限制的私有代码库
查看>>
Angular2, NativeScript 和 React Native比较[翻译]
查看>>
论模式在领域驱动设计中的重要性
查看>>
京东AI研究院何晓冬:将先进的技术和模型落地到产业
查看>>
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>