连接valarrays

时间:2012-11-30 17:04:33

标签: c++ concatenation valarray

我有一些数据存储在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::vector的corpX,因此我获得了std::vector<std:valarray<double>>。现在我需要将每个std::valarray的前两个值存储在另一个std::valarray中:

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

如何以简单的方式完成此操作?谢谢!

1 个答案:

答案 0 :(得分: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)];
}