私はいくつかのデータを受け取るために(ネットワークを介して)サービスに接続するクラスを設計しています。私は、私が事前に受け取る人データポイントがどのようになっているのか分かりません。それにもかかわらず、もしこのクラスを完全な栄光でSTLを楽しむためにforward_iteratorを使って反復可能にする方法があるのであれば、私は不思議に思っていました。私は、これはまだやることが可能何とかであれば、私は、好奇心が強い、有効なend()
を提供することができないとして、しかしForward iterator with moving end()
self_type operator++() {
// if there are some locally cached data points left return next
// else connect to service again to receive the next batch of data
}
:私の考えのようなものでした。明らかに、任意のSTLアルゴリズムでは動作しません
bool hasMoreDataPoints() const;
DataPoint& getNext();
:
代替(およびイテレータレス)インタフェースは、おそらくのようになります。
ストリームのようにイテレータを実装する必要があり、 'end'は単なるデフォルトのイテレータであると思えます。 – NathanOliver