映射map又称字典,表,或者查找表,其元素是由key和value两个分量组成的对偶(key,value)。

key是键,value是与键key相关联的映射值,这样的元素又称“关联”。key和value可以有不同的类型。多重映射muitimap和map的区别是:multimap允许元素有相同的键key。

在建立map对象和multimap对象的程序中需要使用预处理指令:

#include<map>

设分量key的类型是key,分量value的类型是T,下列两个语句分别声明一个映射对象m,和一个多重映射mm:

map<key,T> m;

multimap<key,T> mm;

为了对关联容器进行高效快速的搜索,容器中的元素按键key的大小组成红黑树结构,从而使操作的效率达到O(logn)。为了进行比较,类型key提供比较操作,默认的是在标准模板库<function>中定义的函数

类less。

关联容器的迭代器指定容器中某个元素的存储位置,通过迭代器可以按键的大小顺序遍历容器,所以它们又称为有序关联容器。  begin()指向具有最小键的元素,end()指向具有最大键的元素之后

有以下操作:

构造函数                   构造容器c

c()                             构造一个空的容器

c(comp)                    构造一个空的容器,使用comp函数进行键值比较

c(first,last)                用范围[first,last)中的元素初始化

c(first,last,comp)      用范围[first,last)中的元素初始化,使用comp函数进行键比较

c.empty()                 当且仅当容器c中没有元素时返回true

c.size()                    返回容器c中当前存储的元素个数

c.count(k)                返回c中键值与k相同的元素的个数

c.find(k)                  返 回c中键值等于k元素的迭代器,若不存在这样的元素,则返回end()。  对multimap和multiset,结果迭代器将指向键值等于k的第一个元素

c.begin()                 返回c中第一个元素的迭代器

c.end()                    返回c中最后一个元素之后位置的迭代器

c.erase(it)               删除c中迭代器it所指定的元素

map系统学习的更多相关文章

  1. Dubbo -- 系统学习 笔记 -- 示例 -- 泛化引用

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 泛化引用 泛接口调用方式主要用于客户端没有API接口及模型类元的情况,参数及返回值 ...

  2. Dubbo -- 系统学习 笔记 -- 配置参考手册

    Dubbo -- 系统学习 笔记 -- 目录 配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> ...

  3. Java 系统学习梳理_【All】

    Java基础 1. Java学习---JDK的安装和配置 2. Java学习---Java代码编写规范 2. Java学习---HashMap和HashSet的内部工作机制 3. Java学习---J ...

  4. 零基础如何系统学习Java Web

    零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...

  5. Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇

    前言 前一篇 Unity3D 装备系统学习Inventory Pro 2.1.2 总结 基本泛泛的对于Inventory Pro 这个插件进行了讲解,主要是想提炼下通用装备系统结构和类体系.前两天又读 ...

  6. MES系统学习

    MES系统是当今制造型企业信息化的热点,而统一建模语言UML是面向对象建模的标准语言,在软件工程发挥着重要作用.MES系统如何进行UML建模呢,今天和大家重点讨论一下MES系统的UML建模方法,请看本 ...

  7. 001 今天开始系统学习C#

    2016-01-16 之前只是大概了解过c#语言,感觉掌握不牢靠.现在开始系统学习C#.现以该博客作为学习笔记,方便后续查看.C# 目标:系统掌握c#知识 时间:30天 范围:C#基础,Winform ...

  8. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  9. Linux系统学习笔记:文件I/O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

随机推荐

  1. JavaScript下的进制转换

    JavaScript下的进制转换 //十进制转其他进制 var num = 99; console.log('十进制: ', num); console.log('八进制:', (num).toStr ...

  2. VC6.0 工程转到VS2010一些问题的描述及解决方法

    下列为VC6.0 工程转到VS2008一些问题的描述及解决方法 //////////////////////////////////////////////////////////////////// ...

  3. centos6.5安装zookeeper教程(三)

    阅读前建议先阅读: http://www.cnblogs.com/duenboa/articles/6665159.html   1. 下载安装文件zookeeper-3.4.6.tar.gz 镜像地 ...

  4. Hive 启动 Diagnostic Messages for this Task: java.lang.Throwable: Child Error

    Diagnostic Messages for this Task: java.lang.Throwable: Child Error at org.apache.hadoop.mapred.Task ...

  5. LoadRunner 12 模拟 RSA加密 登录的实现(JS)

    LR 12 中 web_js_run API 非常坑,只能调用一个 JS 文件:更坑的是,不能通用 一个JS调用另外一个JS:(可能有,但在网上找了N个国家,都没有找到!如有,还请朋友告之,谢谢.) ...

  6. ssh动态转发小记

    ssh,一般常用来做远程登录管理,也就是连上远程机器,得到一个shell,然后交互式地在上面敲命令-看结果-再敲命令. 偶尔也会用在脚本里,做些自动化批处理上传下载的操作,但本质上也是用shell来执 ...

  7. Tomcat 如何部署多个应用

    Tomcat 如何部署多个应用 https://blog.csdn.net/tdcqfyl/article/details/51966387

  8. PyQt中从RAM新建QIcon对象 / Create a QIcon from binary data

    一般,QIcon是通过png或ico等图标文件来初始化的,但是如果图标资源已经在内存里了,或者一个zip压缩文件内,可以通过QPixmap作为桥梁,转换为图标. zf = zipfile.ZipFil ...

  9. vue.js基础学习(1)

    一:v-cloak:解决浏览器闪烁,编译过程中不会显示,直到编译结束才显示. 用法:[v-cloak] { display: none;} <div v-cloak> {{ message ...

  10. JavaScript学习系列8 - JavaScript中的关系运算符

    JavaScript中有8个关系运算符,分别是 ===, !===, ==, !=, <, <=, >, >= 1. 恒等运算符 (===) ===也叫做 严格相等运算符,它要 ...