专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 编程

STL学习之map器皿(0)

发布时间:2011-07-01 07:27:59 文章来源:www.iduyao.cn 采编人员:星星草
STL学习之map容器(0)

map

         Map是一系列有一个键值(key)和映射值(value)组合的存储元素关联容器。

        在一个map中,key值是唯一的确定一个元素,而映射值(value)是这个key相关的值的某个排序。键的类型和值的类型是不同的,例如,map的一个典型的实例----电话簿索引是以姓名作为key,以电话号码作为value的。

        本质上,map中的元素是从低到高的键值排序伴随着一个设置在构造函数中严格的弱排序的标准。

        作为关联容器,他们特别设计了通过键值快速访问(不像通过相关联或者相对位置快速访问的顺序容器)。

         因此,下面是map作为关联容器的几个主要特征:

  • 唯一的键值:在map容器中,每个键值都是唯一的。
  • 每一个元素都是有键和值组成。元素值即为其键的简单的关联容器,需要看一下set关联容器。
  • 元素始终保持着严格的弱排序。

        map中的键唯致使此关联容器可以直接执行访问操作(operator[]),此访问操作允许访问值。

        在c++标准模板库的说明文档中,map容器有四个模板参数:

         参数解析:

  • Key:键值的类型,map容器的每一个元素都是唯一的有键值确定。
  • T:映射值的类型,map中的每一个元素都是用于存储某些数据作为其映射值。
  • Compare:比较类:一个带有两个键类型的参数和返回一个布尔值(bool)。表达式comp(a, b),comp是比较类的对象,a和b是键值,如果a在b之前(类似a<b),返回true;也可以是执行函数操作的类或者一个指向函数的指针。它默认为less<Key>,其中less<Key>和a<b返回的值类似。map对象用这个表达式决定元素在容器中的位置。所有在map容器着哦功能的元素都始终遵守这个规则。
  • Allocator:用于定义存储分配模型的分配器对象类型,默认的情况下,使用allocator类模板,这个类模板是最简单的内存分配模型并且是值独立的。

         这个容器类支持双向迭代。

         迭代器访问map容器元素的key和value。为此,类定义了value_type类型,此类型是一个第一个值为对应的常key类型(模板参数Key)和第二个值对应的value(模板参数为T)的pair类:

          typedef pair<const Key, T> value_type;

         map容器的迭代器指向value_type类型的元素,因此,对于一次迭代调用,可以指向map元素,此元素的key和value都可以分别访问到:                   当然,任何其他的直接访问操作,例如->或者[]可以使用,例如:

成员函数


迭代器:

容器(Capacity:

元素访问:

修改容器操作:

观察者(Observers:

操作:

分配器:

成员类型

of template <class Key, class T, class Compare=less<Key>, class Allocator=allocator<pair <const Key, T> > > class map;
member type definition
key_type Key
mapped_type T
value_type pair<const Key,T>
key_compare Compare
value_compare Nested class to compare elements (see member function value_comp)
allocator_type Allocator
reference Allocator::reference
const_reference Allocator::const_reference
iterator Bidirectional iterator
const_iterator Constant bidirectional iterator
size_type Unsigned integral type (usually same as size_t)
difference_type Signed integral type (usually same as ptrdiff_t)
pointer Allocator::pointer
const_pointer Allocator::const_pointer
reverse_iterator reverse_iterator<iterator>
const_reverse_iterator reverse_iterator<const_iterator>

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: