a b
00001 3
00002 2
00003 1 4
00004 2 4 5
00005 1 2
00006 1 2 4
00007 2 5
00008 3 4 5
00009 3 4 5
00010 2 3
这是我的数据,我用C ++用getline打开它,我希望将它们分成2D矢量。希望有一个10 * 2阵列,第一列是a,第二列是b。我该怎么办?
这是我的代码
int row = 0;
int column = 2;
string line;
vector<vector<string>>info;
ifstream data("C:\\01_test.txt");
while (getline(data, line))
{
row++;
}
data.close();
答案 0 :(得分:1)
你可以这样做:
string line;
int main(){
vector<vector<string> > info;
ifstream data("C:\\01_test.txt");
static int cnt=0;
while(getline(data, line)){
istringstream iss(line);
info.push_back(vector<string>());
copy(istream_iterator<string>(iss), istream_iterator<string>(), back_inserter(info[cnt]));
cnt++;
}
};
如果你想使用int的vector,请使用一些函数将字符串更改为int,如atoi。
答案 1 :(得分:0)
最简单的方法是使用istringstream。如果你看一下链接中的例子,那应该是非常明显的。