2
1 3
2 4 8 13
3 5 6 13
4
4
8
3 7 9 10 13
8 10 11
8 9 11 12
9 10
10 15
3 4 8 14
13
12 16
15 17 18
16
18 16
これらの値をファイルから 2 次元 STL ベクトルに読み込みたいと思います。内部ベクトルのサイズは均一ではなく、事前にわかっていないため、「\n」を検出する必要があることに注意してください。これまでのところ、私は成功していません。私のコードは次のとおりです。助けてください。なにが問題ですか?
int main()
{
ifstream Lin("A.txt");
double d;
vector<vector<double> > A;
vector<double> dummy;
if (Lin.is_open()){
while (Lin >> d) {
if (Lin.peek() == '\n'){
A.push_back(dummy);
dummy.clear();
}else{
dummy.push_back(d);
}
}
Lin.close();
}
...
return 0;
}
次のコードを使用してベクターを反復処理すると、格納されているものが明らかになります。
for(int i = 0; i< A.size(); i++){
for(int j = 0; j< A[i].size() ; j++){
cout << A[i][j] << " ";
}
cout << endl;
}
1
2 4 8
3 5 6
3 7 9 10
8 10
8 9 11
9
10
3 4 8
12
15 17
18
意図した出力は、ファイルに保存されている方法と同じです