我有一對int的矢量,我想添加每對的所有第一個元素。我寫了以下代碼C++添加對列表的元素
#include <iostream>
#include <numeric>
#include <vector>
#include <utility>
#define PII pair<int,int>
using namespace std;
int main() {
vector<pair<int,int>> v;
v.push_back(PII(1,2));
v.push_back(PII(3,4));
v.push_back(PII(5,6));
cout<<accumulate(v.begin(),v.end(),0,[](auto &a, auto &b){return a.first+b.first;});
return 0;
}
這裏給出錯誤http://ideone.com/Kf2i7d。 需要的答案是1 + 3 + 5 = 9.我無法理解它給出的錯誤。
我停止閱讀'#define',爲什麼不使用'typedef'來代替? –
或'使用PII = std :: pair;'因爲它是C++ 11。 –
TartanLlama