您的位置:首页 > 编程语言 > C语言/C++

Map

2015-08-03 16:47 344 查看
因为STL基本的容器用法差不多,只有部分不同,所以在写的时候也精简了很多。

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能

map的基本操作函数:

C++ Maps是一种关联式容器,包含“关键字/值”对

begin() 返回指向map头部的迭代器

clear() 删除所有元素

count() 返回指定元素出现的次数

empty() 如果map为空则返回true

end() 返回指向map末尾的迭代器

equal_range() 返回特殊条目的迭代器对

erase() 删除一个元素

find() 查找一个元素

get_allocator() 返回map的配置器

insert() 插入元素

key_comp() 返回比较元素key的函数

lower_bound() 返回键值>=给定元素的第一个位置

max_size() 返回可以容纳的最大元素个数

  rbegin() 返回一个指向map尾部的逆向迭代器

rend() 返回一个指向map头部的逆向迭代器

size() 返回map中元素的个数

swap() 交换两个map

upper_bound() 返回键值>给定元素的第一个位置

value_comp() 返回比较元素value的函数

我的缓存数据结构中有一个数据存储是用Map的,Key是Interger类型。但是当我调用Map的get方法时,传入的参数是Long型,这个也会报错么。我另写了个测试程序,果然如此,特此记下。

public static void main(String[] args) {

Map<Integer, Object> map = new HashMap<Integer, Object>() ;
map.put(1, 111) ;
map.put(2, 222) ;
String s = "1" ;

Object o = map.get(s) ;
System.out.println(o);
o = map.get(Long.parseLong(s)) ;
System.out.println(o);
o = map.get(Integer.parseInt(s)) ;
System.out.println(o);
}


输出结果:

null

null

111
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++