【C++】【STL】【map】基础知识干货
1、map简介
map是一种关联式容器,主要用于对数据一对一的映射。
2、map的构造
(1)头文件:#include<map>
(2)定义:map<第一关键字,第二关键字> 名字
如:map<int,string> a //左边为关键字key ,右边为映射的内容
3、map的基本操作
find() //查找一个元素
insert() //插入一个元素
size() //返回map中元素的个数
swap() //交换两个map
clear() //删除所有元素
empty() //map为空返回true
erase() //删除一个元素
begin() //返回指向map头部的迭代器
end() //返回指向map尾部的迭代器
rend() //返回一个指向map头部的逆向迭代器
rbegin() //返回一个指向map尾部的逆向迭代器
equal_range() //返回特殊条目的迭代器对
upper_bound() //返回键值>给定元素的第一个位置
value_comp() //返回比较元素value的函数
4、map的迭代器
map<string,int> mp; map<string,int>::iterator it; it = mp.begin(); while(it != mp.end() ) { it++; }
5、map的应用(编程实例)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1004
#include<bits/stdc++.h> using namespace std; map<string,int> q; string C, A; map<string,int>::iterator it; int N, a = -1 ; int main(){ while(~scanf("%d",&N) && N != 0){ for(int i = 0; i < N; i++){ cin >> C; q[C]++; } it = q.begin(); while(it != q.end()){ if(it->second > a){ a = it->second; A = it->first; } it++; } cout << A << endl; q.clear(); a = -1; } return 0; }