文档章节

2.5 map

把南墙撞开
 把南墙撞开
发布于 2017/02/03 23:22
字数 316
阅读 0
收藏 0

#include<map>

key/value对

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

用法与set类似


创建map:

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

删除元素:

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

m.erase("haha");

清空map

m.clear();


反向遍历:

for(map<string, float>::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<string, float, desComp> m;
m["haha"] = 11.1;
m["hehe"] = 22.2;
for (map<string, float, desComp>::it = m.begin(); it != m.end(); ++it)
    cout << (*it).first << " : " << (*it).second << endl;

用map实现数字分离(字符映射为数字)

map<char,int> m;
for (int i = 0; i < 10; ++i)
    m['0'+i]=i;
string s="123456";
int a = m[s[3]];//取出第三位上的数字

以上方法采用map<int, char>结构就可以将数字映射为字符


本文转载自:http://blog.csdn.net/weixin_37289816/article/details/54729269

把南墙撞开
粉丝 0
博文 73
码字总数 21068
作品 0
昌平
私信 提问
bitset bitmap 海量数据处理

bitmap:是一个十分有用的结构。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 适用范围...

您这磨人的小妖精
2015/09/05
628
0
THREE.js使用问题

如下,在buttonClick需要如下做才能进行重新渲染新的图片,texture3对象不能重新load图片,然后使用renderer.render(scene,camera);进行渲染吗?这样怎么渲染不上? 如果需要完成这样的操作,...

风祭_将
2016/03/11
489
2
Freemarker介绍、使用并与Spring整合

一、什么是Freemarker 1.1 介绍 是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而...

yuanlaijike
2018/04/16
0
0
层级hashmap过滤敏感词思路

https://blog.csdn.net/gotohailang/article/details/38257627 敏感词过滤-使用hashmap实现dfa算法 假设敏感词有 中国人 中国男人 法轮 1、构建一个如下的数据结构 2、使用敏感词数据结构过滤...

ka_ko
2018/08/25
0
0
tensorflow学习(1)

: mean(a) a = np.array([[1, 2], [3, 4]])>>> np.mean(a) # 将上面二维矩阵的每个元素相加除以元素个数(求平均数)2.5>>> np.mean(a, axis=0) # axis=0,计算每一列的均值array([ 2., 3.]......

D-0
2017/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA 8 中新增 lambda 表达式的一些基本应用

import java.util.Arrays;import java.util.List;import java.util.function.Function;import java.util.stream.Collectors;public class TestLambda { public static void......

这是一只小小鸟
24分钟前
3
0
Java向word中插入Excel文件对象

前言: 在word文件中,虽然也有表格。但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中。 本地的...

qianxi
26分钟前
2
0
海量数据下的注册中心 - SOFARegistry 架构介绍

SOFAStack Scalable Open Financial Architecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 SOFARegi...

SOFAStack
29分钟前
12
0
python操作excel表格

python 对excel的操作 提示:如果需要写多个表,需要把多个表写完在保存,否则会出现表格覆盖问题 此程序 采取一边请求,一边存取,做个异常处理,即可保存已存在的数据 """# sheet的名称,...

鹏灬
31分钟前
1
0
好程序员web前端分享如何理解JS的单线程

好程序员web前端分享如何理解JS单线程,JS本质是单线程的。也就是说,它并不能像JAVA语言那样,两个线程并发执行。 但我们平时看到的JS,分明是可以同时运作很多任务的,这又是怎么回事呢? ...

好程序员IT
35分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部