C ++:将字符串转换为向量<double>

时间:2015-10-21 13:22:23

标签: c++ string vector

我对C ++比较陌生,想把char字符串转换为双精度数。这些字符串将具有不同的长度,但它们的长度将始终是已知的。例如:

我有一个char*字符串,名为&#34; myValue&#34;看起来像"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 个答案:

答案 0 :(得分:3)

您可以使用std::stringstream执行此操作。我们将字符串存储到stringstream中,然后使用while循环从中提取double部分。

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

Live Example

由于我们使用的是标准容器,我建议您使用std::string代替char []然后我们可以更改

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

std::string numbers = "0.5 0.4 1 5";