華為筆試-合併表記錄
阿新 • • 發佈:2018-11-10
題目描述
資料表記錄包含表索引和數值,請對錶索引相同的記錄進行合併,即將相同索引的數值進行求和運算,輸出按照key值升序進行輸出。
輸入描述:
先輸入鍵值對的個數
然後輸入成對的index和value值,以空格隔開
輸出描述:
輸出合併後的鍵值對(多行)
示例1
輸入
4
0 1
0 2
1 2
3 4
輸出
0 3
1 2
3 4
程式碼如下
#include<iostream> #include<map> using namespace std; int main() { std::map<int,int> mapint; std::map<int,int>::iterator imap; int n,key,value; cin >> n; for(int i = 0; i < n; i++) { cin >> key; cin >> value; imap = mapint.find(key); if(imap == mapint.end()) { mapint.insert(make_pair(key,value)); } imap -> second += value; } imap = mapint.begin(); while(imap != mapint.end()) { cout << imap -> first << " "; cout << imap -> second << endl; imap++; } return 0; }