#include<iostream> #include<map> using namespace std; int main() { int n; cin>>n; //输入键值对的个数 map<int, int> m; //使用map容器,自带键值对数据结构 map<int, int>::iterator it; //map类型的迭代器 for(int i=0;i<n;i++) { int a,b; cin>>a>>b; //每行输入一个键值对 it = m.find(a); //查找键a是否存在 if(it != m.end()) { //如果存在,对键相同的单元的值部分进行求和; m[a] = it->second + b; }else { //如果不存在生成新的键值对 m[a] = b; } } for(it=m.begin();it!=m.end();it++) { //遍历打印 cout<<it->first<<" "<<it->second<<endl; } return 0; }
时间: 2024-02-16 09:23:49 浏览: 137
这段代码是一个简单的键值对求和的程序。它使用了C++的map容器来存储键值对,并通过遍历输入的键值对进行求和操作。
首先,程序会读取一个整数n,表示键值对的个数。
然后,创建一个map容器m来存储键值对,以及一个迭代器it来遍历map容器。
接下来,使用for循环读取n个键值对。每次循环中,读取两个整数a和b,表示一个键值对。
然后,使用find函数查找键a是否存在于map容器中。如果存在,将该键对应的值与b相加;如果不存在,则创建一个新的键值对。
最后,使用迭代器it遍历map容器,并打印出每个键值对的键和值。
这段代码的功能是将输入的键值对进行求和,并按照键的顺序输出结果。
阅读全文