-3
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
int main() {
map<int, int> score;
int n;
cin >> n;
while(n--){
int a,b;
cin >> a >> b;
score[a] = score[a] + b;
}
cout << score.rbegin()->first << " " << score.rbegin()->second << endl;
return 0;
}
錯誤消息是16254段錯誤:: 11。退出代碼:139.你能否說爲什麼在使用地圖容器時經常發生分段錯誤。爲什麼我在這個小程序中出現分段錯誤?
你用什麼輸入來運行程序? – 2015-02-23 16:01:59
兩次評分[a]'當然是效率低下的,我並不是100%相信它是定義明確的(儘管我確信有足夠的序列來擺脫它)。我會寫'score [a] + = b;' – 2015-02-23 16:04:20
@MikeSeymour不是標準保證對於任務,rhs將首先被評估?也許我讀錯了,但這裏是我發現:「內置賦值運算符和所有內置複合賦值運算符的副作用(左邊參數的修改)在值計算後排序(但而不是副作用),並且在賦值表達式的值計算之前(即在將引用返回到修改對象之前)排序「 – 2015-02-23 16:43:31