最近开发中使用到map函数,就做了一些小整理;
map:STL的一个类容器,提供一对一的数据处理(键值对),平常我们都用于处理一对一数据时,在编程上提供快速通道。
map内部自建一颗红黑树。
map MapName;
其中val1和val2 的数据类型可以不同,也可以相同,不建议使用void类型。也可以式我们自建的类的类型,即val1和val2都是某种类的对象。c++给map容器提供了以下 个功能一边使用map容器;
添加:(3种方式)
MapName.insert(pair(val1, val2));
MapName.insert(map::value_type(val1, val2));
MapName[val1]=val2;
删除:
map::iterator it::
it=MapName.fine(val1);
if(it==MapName.end())
delete val1;
交换:
交换的式容器,而不是容器内的成员。
map MapName1, MapName2;
map ::iterator it;
MapName1[val1]=val2;
MapName2[val1]=val2;
MapName1.swap(MapName2);
//或者使用swap(MapName1, MapName2);
查找:
map::iterator it::
it=MapName.find(val1);
if(it==MapName.end())
{
cout<< "not find" << endl;
}
else
{
cout << "find" <<endl;
}
排序:
map自带排序功能,按key升序排列,不能使用sort函数;
map的基本操作函数:
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中的指向map头部的逆向迭代器;
size():返回map中元素的个数;
swap():交换两个map;
upper_bound():返回键值>给定元素的第一个位置;
value_comp():返回比较元素value的函数;
概念:
STL容器:Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称。
红黑树:是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。
以上来自自写,并且参考来自Live的微博:http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html
谢谢!!!!!