map系统学习
映射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系统学习的更多相关文章
- Dubbo -- 系统学习 笔记 -- 示例 -- 泛化引用
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 泛化引用 泛接口调用方式主要用于客户端没有API接口及模型类元的情况,参数及返回值 ...
- Dubbo -- 系统学习 笔记 -- 配置参考手册
Dubbo -- 系统学习 笔记 -- 目录 配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> ...
- Java 系统学习梳理_【All】
Java基础 1. Java学习---JDK的安装和配置 2. Java学习---Java代码编写规范 2. Java学习---HashMap和HashSet的内部工作机制 3. Java学习---J ...
- 零基础如何系统学习Java Web
零基础如何系统学习Java Web? 我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...
- Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇
前言 前一篇 Unity3D 装备系统学习Inventory Pro 2.1.2 总结 基本泛泛的对于Inventory Pro 这个插件进行了讲解,主要是想提炼下通用装备系统结构和类体系.前两天又读 ...
- MES系统学习
MES系统是当今制造型企业信息化的热点,而统一建模语言UML是面向对象建模的标准语言,在软件工程发挥着重要作用.MES系统如何进行UML建模呢,今天和大家重点讨论一下MES系统的UML建模方法,请看本 ...
- 001 今天开始系统学习C#
2016-01-16 之前只是大概了解过c#语言,感觉掌握不牢靠.现在开始系统学习C#.现以该博客作为学习笔记,方便后续查看.C# 目标:系统掌握c#知识 时间:30天 范围:C#基础,Winform ...
- Java集合Map接口与Map.Entry学习
Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...
- Linux系统学习笔记:文件I/O
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...
随机推荐
- java.util Properties使用记录
转:http://www.2cto.com/px/201006/47834.html 在java.util 包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properti ...
- HDOJ1150(最小点集覆盖)
#include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> ...
- const关键字祥解
为什么使用const?采用符号常量写出的代码更容易维护:指针常常是边读边移动,而不是边写边移动:许多函数参数是只读不写的.const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替 ...
- web攻击之九:其它
四.身份认证和会话 [攻击] 黑客在浏览器中停用JS,防止客户端校验,从而进行某些操作. [防御] 1.隐藏敏感信息. 2.对敏感信息进行加密. 3.session 定期失效 五.权限与访问控制 [攻 ...
- MATLAB模糊逻辑工具箱函数
说明:本文档中所列出的函数适用于Matlab5.3以上版本,为了简明起见,只列出了函数名,若需要进一步的说明,请参阅MATLAB的帮助文档. 1. GUI工具 Anfisedit 打开ANF ...
- sql中in和exist语句的区别?(补充了left join和right join)
in和exists(摘录自百度)in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询. 如果两个表中一个较小,一个是大表,则子查询表大的用exi ...
- 问题:HttpWebRequest request post 传参; 结果:好用的C# HttpWebRequest用Post同时提交参数和文件的封装类
在项目中,本来都是在站内进行数据交互的,后来又加进来一个买的php网站(艹).需要进行数据交互,在没有考虑使用web服务的情况下,只有通过Post提交到页面进行数据交互是最好的方式了. 我这边使用的是 ...
- BO 与 VO 的属性拷贝 copyProperties(bo,vo)
NewClass extends OldClass : newClass继承自oldClass,属性大多数相同,但是也有新的扩展. beanUtils.copyProperties(oldClas ...
- 全文检索技术---solr
1 Solr介绍 1.1 什么是solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr可以独立运行在Jetty.Tom ...
- Unity堆内存优化
unity中减少堆内存分配以减少垃圾回收处理:只有局部变量且为值类值的变量是从stack栈中分配内存,其它所有情况都是从heap堆中分配内在.* 缓存获取到的数据.* 频繁被调用的函数中尽量少的分配空 ...