功能
提供一对一哈希表(hash),键(key)和值(value)可以是任意类型,map内部使用红黑树自动排序,且key唯一不重复。
头文件
#include<map>
声明
map <key(任何类型),value(任何类型)> map名
map函数
begin() 它返回一个指向map第一个元素的迭代器
clear() 删除所有元素
count() 返回指定建(key)出现的次数(0或者1)
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的函数
示例
/*
HJ8 合并表记录
描述
数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
提示:
0 <= index <= 11111111
1 <= value <= 100000
输入描述:
先输入键值对的个数n(1 <= n <= 500)
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入:
4
0 1
0 2
1 2
3 4
输出:
0 3
1 2
3 4
示例2
输入:
3
0 1
0 2
8 9
输出:
0 3
8 9
*/
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, int> iimap;//声明一个关联容器,键和值的类型均为int
int key, value, num;
cin >> num;
while (num-- && cin >> key >> value)
iimap[key] += value; //不存在的时候默认是0,存在则累加
for (auto beg = iimap.begin(); beg != iimap.end(); ++beg) //auto随赋值操作查找赋值元素类型
cout << beg->first << " " << beg->second << endl;
return 0;
}