У меня есть числовые данные в векторе < < вектор двойной>> и нужно добавить скалярные значения их следующим образом:станд :: преобразование для вектора векторов
vector <vector<double> > data (M, vector<double>(N));
vector <double>scalars(N);
data[0][0] += scalars[0];
data[0][1] += scalars[1];
...
data[0][N-1] += scalars[N-1];
data[1][0] += scalars[0];
data[1][1] += scalars[1];
...
data[1][N-1] += scalars[N-1];
...
data[M-1][N-1] += scalars[N-1];
Конечно, это возможно с двумя для петель. Мне было интересно, можно ли это сделать просто с преобразованием, привязкой и плюсом? Я пытаюсь использовать функторы, где это возможно (хотя по привычке используется старый код стиля С).
Внутренний цикл должен был бы сделать это для вектора 0 в данных:
transform (data[0].begin(), data[0].end(),
scalars[0].begin(),
data[0].begin(),
plus<double>())
Можно ли заменить данные [0] в этой линии с другой счетчик (в связи с преобразованием данных [0] ..data [N-1])? Это, вероятно, стандартная проблема, но я не мог найти хорошую ссылку.
Использовать 'for_each' и лямбда? – us2012