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";