C++:map用法

一、map基本用法


键值对

第一个参数为键的类型,第二个参数为值的类型。


  • 源代码
  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. using namespace std;
  5. int main() {
  6. map<int,string> ::iterator iter; //迭代器iterator:变量iter的数据类型是由map<int,string>定义的iterator类型
  7. map<int,string> myMap;
  8. //添加数据
  9. myMap[1] = "one";
  10. myMap[2] = "two";
  11. myMap[3] = "three";
  12. //遍历map
  13. iter = myMap.begin(); //指向map首对元素
  14. cout<<"myMap:"<<endl;
  15. for (iter; iter != myMap.end(); iter++) { //myMap.end()指向map最后一对元素的后一对元素
  16. cout << (*iter).first << " " << (*iter).second << "\n";
  17. }
  18. cout<<endl;
  19. //构造map
  20. map<int, string> myMap2(myMap.begin(), myMap.end());//用myMap指定范围内的元素对,构造myMap2
  21. map<int, string> myMap3(myMap);//用myMap构造myMap2
  22. iter=myMap2.begin();
  23. iter++;
  24. cout<<"myMap2: "<<(*iter).first<<" " << (*iter).second<<endl<<endl;
  25. iter=myMap3.begin();
  26. iter++;
  27. iter++;
  28. cout<<"myMap3: "<<(*iter).first<<" " << (*iter).second<<endl;
  29. return 0;
  30. }


  • 运行结果:



二、map元素的默认值


当map内元素值为int类型或常量时,默认值为0。

当为String类型时,默认值不明,不显示


  1. map内元素值为int类型
  1. #include <iostream>
  2. #include <map>
  3. using namespace std;
  4. int main(){
  5. map<int,int> table;
  6. table[1]=1;
  7. cout<<table[0]<<endl;
  8. cout<<table[1]<<endl;
  9. return 0;
  10. }


  • 运行结果:




  1. map内元素值为常量类型
  1. #include <iostream>
  2. #include <map>
  3. using namespace std;
  4. enum Symbols { //第一个枚举元素默认值为0,后续元素递增+1。
  5. // 终结符号 Terminal symbols:TS
  6. TS_I, // i
  7. TS_PLUS, // +
  8. TS_MULTIPLY, // *
  9. TS_L_PARENS, // (
  10. TS_R_PARENS, // )
  11. TS_EOS, // #
  12. TS_INVALID, // 非法字符
  13. // 非终结符号 Non-terminal symbols:NS
  14. NS_E, // E
  15. NS_T, // T
  16. NS_F // F
  17. };
  18. int main(){
  19. map<int,enum Symbols> table;
  20. table[1]=TS_PLUS;
  21. cout<<table[0]<<endl;
  22. cout<<table[1]<<endl;
  23. return 0;
  24. }


  • 运行结果:


  1. map内元素值为string类型
  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. using namespace std;
  5. int main(){
  6. map<int,string> table;
  7. table[1]="abc";
  8. cout<<table[0]<<endl;
  9. cout<<table[1]<<endl;
  10. return 0;
  11. }


  • 运行结果:

C++:map用法及元素的默认值的更多相关文章

  1. Java 创建数组的方式, 以及各种类型数组元素的默认值

    ①创建数组的方式3种 ①第1种方法 public class MyTest { public static void main(String[] args){ //method 1 int[] arr ...

  2. java各种数据类型的数组元素的默认值

    public class DataTypeDefaultValue { public static void main(String[] args) { // string类型数组的默认值null / ...

  3. (转)日期类型的input元素设置默认值为当天

    原文地址 html5的form元素对日期时间有丰富的支持 <input type="date"> <input type="time"> ...

  4. 日期类型的input元素设置默认值为当天

    html文件:<input name="" type="date" value="" id="datePicker" ...

  5. java 基本数据类型初始值(默认值)

    1.int类型定义的数组,初始化默认是0 2.String类型定义的数组,默认值是null 3.char类型定义的数组,默认值是0对应的字符 4.double类型定义的数组,默认值是0.0 5.flo ...

  6. SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

    1.SpringMVC中通过@ResponseBody.@RequestParam默认值,@PathVariable的用法 package com.kuman.cartoon.controller.f ...

  7. WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化

    WPF中的常用布局   一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...

  8. Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称

    手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...

  9. HTML元素margin、padding的默认值

    HTML元素margin.padding的默认值 element margin(单位像素) padding html 0 0 body 8 0 div 0 0 h1 21 0 h2 19 0 19 0 ...

随机推荐

  1. 一文解读HTTP (转)

    先扒一扒HTTP协议背景? HTTP(HyperText Transfer Protocol) 即超文本传输协议,现在基本上所有web项目都遵从HTTP协议(协议就是一种人为的规范). 目前绝大部分使 ...

  2. android 完全区分double-tap 与 singal-tap 的方法

    需求:viewpager显示图片,需要在双击时对图片进行缩放,单击时在屏幕下方弹出popwindow,由于android的双击本质就是两次单击,但是又不想在双击时触发单击时的动作,所以就在网上各种搜解 ...

  3. Ubuntu18.04初始化

    Ubuntu18.04初始化 更新源: sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo gedit /etc/apt/sour ...

  4. LeetCode解题笔记 - 1. Two Sum

    1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a ...

  5. 洛谷 P5640 【CSGRound2】逐梦者的初心

    洛谷 P5640 [CSGRound2]逐梦者的初心 洛谷传送门 题目背景 注意:本题时限修改至250ms,并且数据进行大幅度加强.本题强制开启O2优化,并且不再重测,请大家自己重新提交. 由于Y校的 ...

  6. mathematica练习程序(曲线的曲率与挠率)

    曲线的曲率k表示曲线的弯曲程度. 计算公式: 曲线的挠率tao表示曲率平面的扭曲程度,平面曲线挠率为0. 计算公式: 这里r代表曲线方程,比如有如下曲线方程:r={a*cos(t),a*sin(t), ...

  7. 云服务AppId或AppKey和AppSecret生成策略

    App key和App Secret App key简称API接口验证序号,是用于验证API接入合法性的.接入哪个网站的API接口,就需要这个网站允许才能够接入,如果简单比喻的话:可以理解成是登陆网站 ...

  8. 支付签名 MD5Util 排序工具类

    package com.skynet.wechat.wxPay.common; import java.security.MessageDigest; import java.util.Iterato ...

  9. Rust对协程的思考

    最近和同事聊起来,觉得lua缺乏编译型语言的类型校验功能,还有变量拼写检查之类的,导致线上总是有低级错误出现.比如最近有一个是变量名拼写少了一个字母,导致某功能没开启:还有一个是变量传参时,之前测试多 ...

  10. jsp页面科学计数法显示问题的解决办法

    在JSP页面中返回的double类型的数值,如果数值过大,就会被显示成科学计数法. 这个问题通常出现在表单填写的input中,因此是必须要解决的问题. JSTL提供了标准的数值格式化标签,使用上非常简 ...