[C++]-map 映射
map用来存储排序后的由键和值组成的项的集合。键必须唯一,不同的键可以对应同一个值,在map中键保持逻辑排序后的顺序(以键为标准)。
代码
#include<iostream>
#include<map>
#include<string>
using namespace std;
inline void print_map(map<string, double> m)
{
for(map<string, double>::iterator it = m.begin(); it != m.end(); ++it) // it指向一个二元组
cout << it->first << ": " << it->second << endl; cout << endl;
/**
for(auto x : m)
cout << x.first << ": " << x.second << endl; cout << endl;
*/
}
int main()
{
map<string, double> mymap; // 默认是小于比较器less<string>
cout << "-----插入------" << endl;
mymap.insert(pair<string, double>("xxm", 1.1));
mymap.insert(make_pair("mqg", 2.2));
mymap.insert(map<string, double>::value_type("lpp", 3.3));
mymap["zhx"] = 4.4;
print_map(mymap);
cout << "-----通过键获取元素值------" << endl;
// 直接索引
// 通过索引直接获取对应的值,不存在键sjx,则返回double无参构造函数赋值为0
cout << mymap["xxm"] << " " << mymap["sjx"] << endl;
// 由于刚才 mymap["sjx"]语句,现在mymap中多了一个键值对mymap["sjx"]=0
// for循环遍历
print_map(mymap);
cout << "----- 判断是否存在某个键------" << endl;
map<string, double>::iterator it1 = mymap.find("xxm"); // 存在,返回对应的迭代器
if(it1 == mymap.end())
cout << "不存在该键" << endl;
else
cout << it1->second << endl;
map<string, double>::iterator it2 = mymap.find("xxxxm"); // 不存在,返回mymap.end()
if(it2 == mymap.end())
cout << "不存在该键" << endl;
else
cout << it2->second << endl;
cout << endl;
cout << "-----删除------" << endl;
mymap.erase("xxm"); // 删除键为xxm的键值对
mymap.erase(++mymap.begin()) ; // 删除第二个元素
print_map(mymap);
mymap.erase(mymap.begin(), mymap.end()); // 删除[mymap.begin(), mymap.end())区间的元素
if(mymap.empty()) cout << "mymap已空" << endl;
mymap.clear(); // 直接将映射内容全部清空
}
运行结果
-----插入------
lpp: 3.3
mqg: 2.2
xxm: 1.1
zhx: 4.4
-----通过键获取元素值------
1.1 0
lpp: 3.3
mqg: 2.2
sjx: 0
xxm: 1.1
zhx: 4.4
----- 判断是否存在某个键------
1.1
不存在该键
-----删除------
lpp: 3.3
sjx: 0
zhx: 4.4
mymap已空
[C++]-map 映射的更多相关文章
- ZOJ 3644 Kitty's Game dfs,记忆化搜索,map映射 难度:2
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 从点1出发,假设现在在i,点数为sta,则下一步的点数必然不能是sta的 ...
- POJ2503——Babelfish(map映射+string字符串)
Babelfish DescriptionYou have just moved from Waterloo to a big city. The people here speak an incom ...
- map——映射(message.cpp)
信息交换 (message.cpp) [题目描述] Byteland战火又起,农夫John派他的奶牛潜入敌国获取情报信息. Cow历尽千辛万苦终于将敌国的编码规则总结如下: 1 编码是由大写字母组成的 ...
- filter过滤器与map映射
filter过滤器 >>> list(filter(None,[0,1,2,True,False])) [1, 2, True] filter的作用就是后面的数据按照前面的表达式运算 ...
- map映射
采集于:https://blog.csdn.net/luanpeng825485697/article/details/78056312 映射map: var map = new Map(); //映 ...
- Java精选笔记_集合【Map(映射)接口】
Map(映射)接口 简介 该集合存储键值对,一对一对的往里存,并且键是唯一的.要保证map集合中键的唯一性. 从Map集合中访问元素时,只要指定了Key,就能找到对应的Value. 关键字是以后用于检 ...
- UVA12096 - The SetStack Computer(set + map映射)
UVA12096 - The SetStack Computer(set + map映射) 题目链接 题目大意:有五个动作: push : 把一个空集合{}放到栈顶. dup : 把栈顶的集合取出来, ...
- PHP转Go系列:map映射
映射的定义 初识映射会很懵,因为在PHP中没有映射类型的定义.其实没那么复杂,任何复杂的类型在PHP中都可以用数组表示,映射也不例外. $array['name'] = '平也'; $array['s ...
- Reactor系列(五)map映射
#java# #reactor# #flux# #map# #映射# 视频解视: https://www.bilibili.com/video/av79179444/ FluxMonoTestCase ...
- scala 数据结构(八 ):-map映射操作
在Scala中可以通过map映射操作来解决: 将集合中的每一个元素通过指定功能(函数)映射(转换)成新的结果集合这里其实就是所谓的将函数作为参数传递给另外一个函数,这是函数式编程的特点 以HashSe ...
随机推荐
- 16、如何将安装在chrome上的插件(扩展程序)打包成".crx"文件
1.打开扩展程序: 2.打开开发者模式并选择要打包的插件: 3.打包扩展程序: (1) (2) (3)
- 『心善渊』Selenium3.0基础 — 17、Selenium操作浏览器窗口的滚动条
目录 1.为什么操作滚动条 2.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动 ...
- 收集雪花(map)
题目描述 不同的雪花往往有不同的形状.在北方的同学想将雪花收集起来,作为礼物送给在南方的同学们.一共有n个时刻,给出每个时刻下落雪花的形状,用不同的整数表示不同的形状.在收集的过程中,同学们不希望有重 ...
- 【转载】CentOS-yum安装Nginx
查看系统版本 $ cat /etc/redhat-release Nginx 不在默认的 yum 源中,使用官网的 yum 源 $ rpm -ivh http://nginx.org/packages ...
- mysql中的条件语句case when/if函数
主要知识点为case函数,if函数,ifnull函数,elt函数几部分,主要用于mysql语句中的逻辑判断 待操作的表如下: p.p1 { margin: 0; font: 16px Menlo; c ...
- Androidmanifest.xml文件格式详解(转载)
https://www.jianshu.com/p/eaaae96473f6 来自简书大佬的
- 「AGC020F」 Arcs on a Circle
「AGC020F」 Arcs on a Circle Link 这个题非常 Amazing 啊.果然AtCoder全是智商题 首先你可以注意到数据范围真的是小得离谱,让你想要爆搜. 然后你发现不可做, ...
- C语言:宏定义
#include <stdio.h> #define PI 3.14159265454454235432453245 main() { printf("%f\n",PI ...
- java课堂考试总结
9月22日,进行了开学第一堂的java测试,来检验暑假的自学成果.下午的考试中,时间应该是比较充分的,但是我还是有许多功能模块没有完成,功能缺少,在进行测试的时候暴露出了许多漏洞. 总结一下,在暑假的 ...
- 数据库里的回车字符导致取过来的json字符串不规范的问题
转发:https://bbs.csdn.net/topics/380192638 你可以报保存数据库之前,进行 替换 str = str.Replace("\r\n"," ...