大量のデータを生成するC++11クラスを作成しています。そのデータは現在データベースからのものであり、完全にメモリに収まるわけではありません。通常のSTLイテレータのように動作するイテレータをユーザーに提供したいのですが、それは怠惰になります。もっと正確に言えば、私はそのようなことをすることができるでしょう:
for (auto& item : big_bunch_of_data) {
do_stuff_with(item);
}
アイテムは各反復でのみデータベースから取得されます。私が正しければ、この新しい構文は
for (stuff::iterator it = big_bunch_of_data.begin();it != big_bunch_of_data.end();it++) {
do_stuff_with(*it);
}
begin
、、end
を提供することでoperator++
、目的の動作を実現できるということですか?そして、これらの方法は何をすることになっていますか?つまり、物を壊さずに怠惰にすることはできますか?