C++: преобразовать строку в вектор<double>

Я относительно новичок в C++ и хотел бы преобразовать строки чисел в вектор двойников. Эти строки будут иметь разную длину, но их длина всегда будет известна. Например:

у меня есть char* Строка называется "myValue", которая выглядит следующим образом "0.5 0.4 1 5" и имеет известную длину, length=4,

Я хотел бы преобразовать эту строку в вектор двойников, как это:

vector<double> Param и дать мне следующий вывод:

Param[0]=0.5, Param[1]=0.4, Param[2]=1, Param[3]=5

1 ответ

Решение

Вы можете сделать это с std::stringstream, Мы будем хранить строку в stringstream а затем извлечь double разделяет его с помощью цикла while.

std::stringstream ss;
std::vector<double> data;
char numbers[] = "0.5 0.4 1 5";
ss << numbers;
double number;
while (ss >> number)
    data.push_back(number);

Живой пример

Поскольку мы используем стандартный контейнер, я бы предложил использовать std::string вместо char [] и тогда мы могли бы изменить

char numbers[] = "0.5 0.4 1 5";

к

std::string numbers = "0.5 0.4 1 5";
Другие вопросы по тегам