C++中map的使用方法
map是C++中STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。map内部使用红黑树实现(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,这种排序是针对键值Key的大小而言的。
1. 头文件包含
#include <map>
2. 构造函数
1. //默认构造函数
map<char,int> first;
2. //复制构造函数
first['a']=10;
first['b']=30;
first['c']=50;
first['d']=70;
map<char,int> second (first.begin(),first.end());//使用迭代器范围复制
third (second);//复制
3. //类似set,比较函数comp可以使用类和函数指针实现
struct classcomp {
bool operator() (const char& lhs, const char& rhs) const
{return lhs<rhs;}
};
map<char,int,classcomp> fourth;//使用类
bool fncomp (char lhs, char rhs) {return lhs<rhs;}
bool(*fn_pt)(char,char) = fncomp;
std::map<char,int,bool(*)(char,char)> fifth (fn_pt);//使用函数指针
3. 常用方法陈列
1.begin() 返回指向map头部的迭代器
2. clear() 删除所有元素
3. count() 返回指定元素出现的次数
4. empty() 如果map为空则返回true
5. end() 返回指向map末尾的迭代器
6. equal_range() 返回特殊条目的迭代器对
7. erase() 删除一个元素
8. find() 查找一个元素
9. get_allocator() 返回map的配置器
10. insert() 插入元素
11. key_comp() 返回比较元素key的函数
12. lower_bound() 返回键值>=给定元素的第一个位置
13. max_size() 返回可以容纳的最大元素个数
14. rbegin() 返回一个指向map尾部的逆向迭代器
15. rend() 返回一个指向map头部的逆向迭代器
16. size() 返回map中元素的个数
17. swap() 交换两个map
18. upper_bound() 返回键值>给定元素的第一个位置
19. value_comp() 返回比较元素value的函数