【发布时间】:2016-06-23 01:48:53
【问题描述】:
将vector<string> line 转换为vector<vector <double> > d 的好方法是什么?
我从一个文件中读取了 500x9 的向量字符串数据,
vector<string> line;
我需要将此字符串向量转换为大小为 2D 向量数组(500 行,9 列)
vector<vector <double> > d;
代码:
using namespace std;
int main()
{
/// read file data ///
std::ifstream myfile;
myfile.open("somefile.txt");
std::vector<string> lines;
std::string str;
while(getline(myfile,str))
lines.push_back(str);
myfile.close();
std::vector< std::vector<double> > data;
/// convert string to double ///
std::transform(lines.begin(), lines.end(), data.begin(), std::stod);
}
【问题讨论】:
-
这里有个建议:打开一个编辑器,写一些代码。
-
@Barmar .. 感谢您对编辑的帮助...,不,它的方式不同,我已经能够从 .txt 文件而不是 csv 读取数据,我的主要问题是将字符串向量转换为2d - 双精度向量.. 稍后我将不得不提取单个列
-
这有什么不同?您有一个逗号分隔的数字列表,CSV 阅读器将返回一个二维向量。
-
好吧,第一,它不是逗号分隔的..它只是空格,我认为它可以用一两行代码解决..而不是像在那个问题中那样创建新类我有问题这行代码..这应该将字符串转换为双精度。 ..如果我错了,请纠正我? std::transform(lines.begin(),lines.end(),data.begin(),std::stod);感谢您的帮助
标签: c++ string vector 2d-vector