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所指定的元素
最新文章
- 转: 如何高效利用GitHub
- 【PRINCE2是什么】PRINCE2认证之七大原则(6)
- linux系统的初化始配置(包括网络,主机名,关闭firewalld与selinux)
- BZOJ4590 自动刷题机
- sql语句查询出表里符合条件的第二条记录的方法
- 在jsp页面解析json的2种方法
- Qt之QHostInfo
- Eclipse 修改编码格式
- PHP+AJAX 地区三级联动代码
- UICollectionView 适配 iPhone 7 Plus
- spring quartz开发中使用demo
- 运维面试题之linux基础
- C# 检查数字
- LeetCode:111_Minimum Depth of Binary Tree | 二叉树的最小深度 | Easy
- Codeforces 825D Suitable Replacement - 贪心 - 二分答案
- 配置文件elasticsearch.yml详解
- 【译】Apache Flink Kafka consumer
- Repository与Factory关系
- iOS 推送功能打包后获取不到deviceToken
- Redis安装与配置Redis安装与配置