标准模板库(STL)之 map 列传

  • map 容器的遍历
  • 修改 key or value
  • 实用的成员函数
  • 下标 vs at

map 容器的遍历

  • 使用 range-based for 循环访问 map 元素(C++11之后方支持)

    std::map<std::string, float> coll;
    ...
    for (auto elem&: coll)std::cout << "key: " << elem.first << "\t" << "value: " << elem.second << std::endl;

    其中 elem 是个 reference,指向“容器 coll 中目前正被处理的元素”,因此 elem 的类型是pair<const std::string, float>。表达式elem.first取得元素的key,表达式elem.second自然取得元素的 value。

  • 以迭代器访问元素(C++11之前必须使用这种方法)

    std::map<std::string, float>::iterator pos;
    for (pos = coll.begin(); pos != coll.end(); ++pos)std::cout << "key: " << pos->first << "\t" << "value: " << pos->second << std::endl;

修改 key or value?

如果你尝试改变元素的 key,会在编译器即引发错误:

elem.first = "hello";           // ERROR at compile time
pos->first = "hello";           // ERROR at compile time

不过如果 value 本身的类型并非 const,修改其值自然没有问题:

elem.second = 13.5;
pos->second = 13.5;

实用的成员函数

  • (1)c.count(val):返回”key 为 val”的元素的个数
  • (2)c.find(val):最终取返回迭代器 ite 的 second 成员变量

下标 vs at

  • (1)c[key]:返回 key 对应的value,如果存在于该容器;安装这一key value 对,如果尚未存在于容器内;

  • (2)c.at(key):返回 key 对应的 value,如果不存在于容器中,则会抛异常;如下图:

标准模板库(STL)之 map 列传 (二)相关推荐

  1. 标准模板库STL(Standard Template Library)

    标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...

  2. 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)

    欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 ​ 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...

  3. C++ ——模板 标准模板库STL

    C++ 知识基础 流操作符 类 & 基础 初始化和重载 类 & 高级 继承和多态 模板 & 标准模板库STL 目录 C++ 一.模板 1.函数模板 2.类模板 二.标准模板库S ...

  4. C++ 标准模板库(STL)

    C++ 标准模板库(STL) C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列) ...

  5. c++标准模板库STL【快速查找】【最全】【常用】【语法】

    c++标准模板库STL[快速查找][最全][常用][语法] c标准模板库STL快速查找最全常用语法         vector- 变长数组         set-内部自动有序且不含重复元素     ...

  6. c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解

    c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...

  7. 第十章 标准模板库STL

    第十章 标准模板库STL 因为是在复习时重写的,无法在PTA上验证,编程题格式可能有误. 判断题 1.可以通过下标随机访问向量vector中的元素.(T) 2.当向量对象的内存用完之后,就会产生越界错 ...

  8. C++ 标准模板库 STL 概述

    泛型程序设计 C++ 的特点: ​ C++ 的核心优势之一就是便于软件重用,而软件的重用在 C++ 中主要体现在以下两个方面: 面向对象的思想:继承.多态和标准类库 泛型程序设计的思想:模板机制和标准 ...

  9. 13 标准模板库STL【C++】

    13 标准模板库STL 13- 判断题 单选题 填空题 程序填空题 函数题 7-1 .查找电话号码 7-2 姓名排序 7-3 Score Processing 13+ 编程题 7-1 查找成绩并折算后 ...

  10. C++中标准模板库STL基本概念

    0. 前言 C++语言的一大优势就是便于软件的重用,而重用体现在两方面: 1. 面向对象思想:继承和多态,标准类库 2. 泛程序设计(Generic Programming)思想:模板机制,标准模板库 ...

最新文章

  1. 配置token_Nginx常用的配置
  2. POJ - 1584 A Round Peg in a Ground Hole(综合几何)
  3. java math.cos_Java Math类静态double cos(double d)示例
  4. matlab仿真模拟随机过程,基于MATLAB的随机过程仿真.pdf
  5. linux eclipse c++ 如何生成arm可执行文件_干货 | protobuf-c之嵌入式平台使用
  6. [Python]小甲鱼Python视频第037课(类和对象:面向对象编程 )课后题及参考解答
  7. python脚本用类编写_跟老齐学Python之编写类之二方法
  8. Ubuntu 16.04 x64 常用软件
  9. Istio流量管理实践之(3): 基于Istio实现流量对比分析 1
  10. ae编程语言as_18种常用AE表达式解析
  11. linux 安装Elasticsearch
  12. 在线OPML压缩工具
  13. 百度关键词指数查询易语言代码
  14. vs点击方法跳不到对于的地方_田宫四驱车 狂牛 配VS底盘改装制作全攻略
  15. 内存取证-Volatility安装使用以及一些CTF比赛题目
  16. 阿里妈妈Dolphin分布式向量召回技术详解
  17. 横空出世的作业APP,会继续走俏还是就此堕落?
  18. WINDOWS 文件夹内容
  19. Mac系统下Cypress使用初体验
  20. Intel NUC8i5BEH安装Windows10+Hackintosh双系统

热门文章

  1. 一个很简单的问题:遍历int数组并删掉所有偶数
  2. HBuilderX真机调试检测不到魅族手机
  3. Linux系统下修改主机名(CentOS7)
  4. latex 中表格怎么指定编号_在医学论文中,应用表格怎么用才是正确的?
  5. eclipse中要让一个 Java 源文件打开时编码格式为 UTF-8
  6. 机器学习代码实战——网格搜索和交叉验证(GridSearchCV)
  7. TensorFlow安装中碰到的问题汇总
  8. C++ 设计模式之Static Factory模式(简单工厂模式)
  9. tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners
  10. mysql数据库最多列_mysql多列索引和最左前缀