std::generate_n
関数を使ったプログラムを作っています。配列では問題なく動作しますが、リスト コンテナーで動作させる方法がわかりません。ここに私が持っているものがあります:
#include <iostream>
#include <algorithm>
#include <list>
using namespace std;
int current = 0;
int UniqueNumber () { return ++current; }
int main ()
{
list<int> L;
list<int>::iterator it;
generate_n (L.begin(), 9, UniqueNumber);
cout << "list contains:";
for (it=L.begin(); it!=L.end(); ++it)
cout << ' ' << *it << '\n';
return 0;
}
出力には「list contains:」のみが表示され、その後は何も表示されません。insert() メソッドを使用して手動で試したので、出力ループが正しく機能することはわかっています。したがって、問題は generate_n 関数に関係しています。引数を間違って渡していると思います。私が何をしたか知っている人はいますか?