我在 vector< vector < double>> 中有数值数据,需要向它们添加标量值,如下所示:
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];
当然,这可以通过两个 for 循环来实现。我想知道它是否可以像转换、绑定和加号一样简单地完成?我正在尝试尽可能使用仿函数(尽管出于习惯仍然使用旧的 C 样式代码)。
内部循环需要对数据中的向量 0 执行此操作:
transform ( data[0].begin(), data[0].end(),
scalars[0].begin(),
data[0].begin(),
plus<double>() )
是否可以将这一行中的 data[0] 替换为另一个计数器(与 data[0]..data[N-1] 的转换有关)?这可能是一个标准问题,但我找不到很好的参考。