1

我有一些数据存储在std::vector<std::vector<double>. 我用它std::valarray从我的std::vector<std::vector<double>.

std:valarray<double> corpX(corps_tmp[i].data(), corps_tmp[i].size());

有了这个新的,std:valarray<double>我创建了一个std::vectorcorpX,所以我获得了一个std::vector<std:valarray<double>>. 现在我还需要将每个的前两个值存储std::valarray在另一个中std::valarray

std:valarray<double> position_corps = \\ Concatenation of all the std::valarrays corpsX

我怎样才能以简单的方式做到这一点?谢谢!

4

1 回答 1

1
// assume: std::vector<std::valarray<double>> corpsX;
std::valarray<double> position_corps(corpsX.size());
for (std::size_t i = 0; i < corpsX.size(); ++i) {
    position_corps[std::slice(2 * i, 2, 1)] = corpsX[i][std::slice(0, 2, 1)];
}
于 2013-03-27T07:32:25.137 回答