std::list<int>ってやるとint型のリストを「管理する」コンテナが
できるってところがミソかなぁ〜
begin()/end()とかを保存はしてるけど、それ以外のアルゴリズムに
必要な状態の保存はiteratorやら関数オブジェクトに任せるとか。
そういうのを考えながら見ると参考になるかと。