【发布时间】:2016-08-26 05:38:47
【问题描述】:
我有一个字符串向量,它在向量的每个位置都包含数值,我想知道如何让我的程序判断如何转换字符串中的值,例如将它们转换为双精度数或整数或浮点数合适的时候。
vector <string> SeperatedValues;
SeperatedValues.push_back("22");
SeperatedValues.push_back("4.1");
SeperatedValues.push_back("80.41");
SeperatedValues.push_back("2");
是否有任何内置函数可以为我做到这一点!
我可以将所有内容都转换为双精度值,但这效率不高,因为字符串中的值可能适合整数而不需要双精度值!
【问题讨论】:
-
我不知道你的号码是从哪里来的,但是首先不将它们存储为
strings怎么样? :) -
标准库具有尝试转换并在失败时抛出的函数(自
C++11)。但是,寻找尽可能少的数据类型的蛮力可能会降低程序的速度,而不仅仅是使用宽数值类型。 -
@CompuChip 我很乐意这样做,因为它会让爱变得更容易,但这些数字是从另一个包含数字和字符的向量中提取的,这与它们的方式有关被放入我的系统! :)
-
我建议你应该分析你的代码,看看这种“效率”增益是否真的值得。
-
@StoryTeller,这意味着我要么必须牺牲内存或速度?如果我理解正确!
标签: c++ string vector type-conversion