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 映射的更多相关文章

  1. ZOJ 3644 Kitty's Game dfs,记忆化搜索,map映射 难度:2

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 从点1出发,假设现在在i,点数为sta,则下一步的点数必然不能是sta的 ...

  2. POJ2503——Babelfish(map映射+string字符串)

    Babelfish DescriptionYou have just moved from Waterloo to a big city. The people here speak an incom ...

  3. map——映射(message.cpp)

    信息交换 (message.cpp) [题目描述] Byteland战火又起,农夫John派他的奶牛潜入敌国获取情报信息. Cow历尽千辛万苦终于将敌国的编码规则总结如下: 1 编码是由大写字母组成的 ...

  4. filter过滤器与map映射

    filter过滤器 >>> list(filter(None,[0,1,2,True,False])) [1, 2, True] filter的作用就是后面的数据按照前面的表达式运算 ...

  5. map映射

    采集于:https://blog.csdn.net/luanpeng825485697/article/details/78056312 映射map: var map = new Map(); //映 ...

  6. Java精选笔记_集合【Map(映射)接口】

    Map(映射)接口 简介 该集合存储键值对,一对一对的往里存,并且键是唯一的.要保证map集合中键的唯一性. 从Map集合中访问元素时,只要指定了Key,就能找到对应的Value. 关键字是以后用于检 ...

  7. UVA12096 - The SetStack Computer(set + map映射)

    UVA12096 - The SetStack Computer(set + map映射) 题目链接 题目大意:有五个动作: push : 把一个空集合{}放到栈顶. dup : 把栈顶的集合取出来, ...

  8. PHP转Go系列:map映射

    映射的定义 初识映射会很懵,因为在PHP中没有映射类型的定义.其实没那么复杂,任何复杂的类型在PHP中都可以用数组表示,映射也不例外. $array['name'] = '平也'; $array['s ...

  9. Reactor系列(五)map映射

    #java# #reactor# #flux# #map# #映射# 视频解视: https://www.bilibili.com/video/av79179444/ FluxMonoTestCase ...

  10. scala 数据结构(八 ):-map映射操作

    在Scala中可以通过map映射操作来解决: 将集合中的每一个元素通过指定功能(函数)映射(转换)成新的结果集合这里其实就是所谓的将函数作为参数传递给另外一个函数,这是函数式编程的特点 以HashSe ...

随机推荐

  1. 为Centos系统打补丁

    4.1.操作系统打补丁: 1.centos更新说明: centos 官方没有发布关于centos操作系统的补丁. centos 操作系统更新可以参考如下建议. 2.更新操作系统软件包,操作系统版本.内 ...

  2. 1、Linux下源码编译安装PostgreSQL

    操作系统:Centos7 说明:postgresql必须在postgres用户下初始化数据库和启动,否则报错. PostgreSQL的特性 PostgreSQL是一种几乎可以运行在各种平台上的免费的开 ...

  3. 视频云峰会|“科技 X 艺术” 的颗粒度体验是什么?

    科技日新月异,交互艺术新门类也随之蓬勃,当代艺术创作者不断凭借其想象力和跨学科能力,致力科技与艺术的融合创作. 7 月 10 日,在北京,2021 阿里云视频云全景创新峰会暨全球视频云创新挑战赛决赛颁 ...

  4. [心得体会]mysql复习

    1. 进入企业需要注意的事情 (1) 查看测试服和本地的mysql版本是否一致(2) 确认sql_mode是否和线上版本一致 show VARIABLES LIKE 'sql_mode'; (3) m ...

  5. SpringMVC(4)数据绑定-1

    在SpringMVC(3)URL请求到Action的映射规则我们介绍了请求是如何映射到一个action上的,下一步当然是如何获取到请求中的数据,这就引出了本篇所要讲的内容-数据绑定. 首先看一下都有哪 ...

  6. 10 shell test命令

    0.test命令的用法 1.与数值比较相关的test选项 2.与字符串判断相关的 test 选项 3.与文件检测相关的test选项 4.与逻辑运算相关的test选项 5.注意点与总结 1.test中变 ...

  7. 『心善渊』Selenium3.0基础 — 30、UI自动化测试之POM设计模式

    目录 (一)POM模式介绍 1.什么是POM介绍 2.为什么要使用POM模式 3.POM的优势 4.POM模式封装思路 (1)POM模式将页面分成三层 (2)POM模式的核心要素(重点) (3)总结 ...

  8. pip install 默认安装路径修改

    一.使用命令查看pip默认安装目录 python -m site 这里的USER_BASE和USER_SITE其实就是默认的启用Python通过pip自动下载的脚本和依赖安装包的基础路径. 接着使用命 ...

  9. sql-5-事务,索引

    事务 1.ACID概念 原子性(Atomicity) 要么都成功,要么都失败 一致性(consistency) 事务前后的数据完整性保持一致 持久性(Durability) 事务一旦提交则不可逆,持久 ...

  10. 微信小程序云开发-数据库-用户删除数据

    一.在商品详情页添加[删除单条数据]按钮 进入goodDetail.wxml页面,添加[删除单条数据]按钮,绑定点击事件removeGood()  二.进入goodDetail.js文件,定义remo ...