у меня есть vector<vector<double>
Итак, таблица (матрица) значений. Столбцы содержат положение и скорость планеты, поэтому в строках хранятся данные одной и той же планеты. Я хочу превратить строку в valarray
потому что мне нужны математические операции. Затем я хочу сохранить valarrays (планеты) в векторе.
Я пытался так:
vector<vector<double>> corps_tmp=configFile.get_corps(); // The function returns a vector<vector<double>>
valarray<double> corpX;
for (int i(0); i < corps_tmp.size(); i++) {
corpX = corps_tmp[i]; // I want to save the first row of the vector<vector<double>> on the valarray
corps.push_back(corpX); // I want to ''add'' the valarray to a vector.
corpX = 0;
}
Этот код не работает, и я получаю сообщение об ошибке при присвоении вектора для valarray (очевидно, не допускается).
Есть ли способ достичь простым способом, что я пытался сделать?
Чтобы создать valarray из вектора:
std:valarray<double> corpX(corps_tmp[i].data(), corps_tmp[i].size());
Чтобы записать данные обратно в вектор:
corps_tmp[i].assign(std::begin(corpX), std::end(corpX));
Других решений пока нет …