「wy.txt」という名前のファイルがあり、次のような整数が含まれています。
1 2 3 4 5 6 7 8
istream_iterator<int>
ファイルを読み取り、copy()
データを stdout ストリームに出力するために使用します。
次に、同じものを使用して名前付きistream_iterator<int>
を構築しますが、のサイズは1です。理由を知っていますか?vector
v
v
これは私のコードです:
ifstream file("wy.txt");
istream_iterator<int> fileStream(file);
istream_iterator<int> eof;
// output: 1 2 3 4 5 6 7 8
copy(fileStream, eof, ostream_iterator<int>(cout, " "));
cout<<endl;
vector<int> v(fileStream, eof);
// output: 1
cout<<v.size()<<endl;
// output: 1
for_each(v.begin(), v.end(), [](const int & t){cout<<t<" ";});
cout<<endl;
編集:
コードを次のように変更しました。
ifstream file("wy.txt");
istream_iterator<int> fileStream(file);
istream_iterator<int> eof;
copy(fileStream, eof, ostream_iterator<int>(cout, " "));
cout<<endl;
file.seekg(0, ios::beg);
file.clear();
vector<int> v(fileStream, eof);
cout<<v.size()<<endl;
for_each(v.begin(), v.end(), [](const int & t){cout<<t<" ";});
...しかし、同じ問題があります。