2
ifstream file1;
file1.open("in1.txt");
istream_iterator<string> iterator1(file1);
copy(istream_iterator<string>(file1), istream_iterator<string>(), back_inserter(lstr));

1 つのファイルを指す 2 つの入力ストリーム イテレータを使用できますか? 上記の場合のように、イテレータが進んでおり (逆参照は 1 回だけ)、最初の要素 (文字列) がコピーにありません。可能な方法はありますか?

4

2 に答える 2

2

できますが、一方を進めると、ファイル ポインタも一緒に進むため、もう一方の次の進行に影響します。また、イテレータは作成時に一度進められるため、必要になるまで作成しないでください。

于 2010-11-20T21:59:00.150 に答える
1

標準は、要件規則に従った注記として 24.1.1 でそれをむき出しにしています。そして、みんな標準語を聞きたがっているので引用します。

[注: 入力反復子の場合、a == b は ++a == ++b を意味しません。(等価性は、置換プロパティまたは参照の透過性を保証するものではありません。) 入力反復子のアルゴリズムは、同じ反復子を 2 回通過することを決して試みてはなりません。それらはシングル パス アルゴリズムである必要があります。

于 2010-11-20T22:32:26.203 に答える