Назначьте std :: vector для std :: valarray

у меня есть 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 (очевидно, не допускается).

Есть ли способ достичь простым способом, что я пытался сделать?

6

Решение

Чтобы создать valarray из вектора:

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

Чтобы записать данные обратно в вектор:

corps_tmp[i].assign(std::begin(corpX), std::end(corpX));
11

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]