я написал небольшую прогу, чтобы заставить map / lower работать в C ++. здесь структура:
struct Point {
int x = 0;
int y = 0;
};
И я хочу выбрать «х» каждой точки и умножить их на целое число. Затем я хочу уменьшить значения с окончательной лямбой (или через std :: multiples)
std::vector<Point> p = {{10,20},{20,40}};
std::vector<int> p3 (p.size());
auto totalx = transform_reduce(p.begin(), p.end(),p3.begin(), 0.0, [](Point& p){ return p.x * 23;}, [](int a, int b){return a * b;});
cout << totalx << endl;
У меня есть эта ошибка:
main.cpp:28: candidate function not viable: requires single argument 'p', but 2 arguments were provided
conversion candidate of type 'int (*)(Point &)'
И я действительно не понимаю, что я сделал неправильно.