У меня есть вектор пар 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' вместо этого? –
Или 'using PII = std :: pair;' поскольку это C++ 11. –
TartanLlama