2

これはRangeクラスです:

template <typename T>
class Range
{
public:
  class iterator;

  Range(T low, T high) : low_(low), high_(high)
  {
  }

  const iterator begin() const
  {
    return iterator(low_);
  }

  const iterator end() const
  {
    return iterator(high_);
  }

};

どのイテレータの王(順方向、ランダム、入力)を選択するのが最適ですか?

4

2 に答える 2

1

operator*またはからのイテレータ状態の変更を許可しない限り、ランダムイテレータが必要な場合を含め、任意のタイプのイテレータを提供できますoperator->。つまり、イテレータでカウントを保持している場合は、 (値)とaoperator*を返す必要があります。これにより、これらの演算子を使用して反復を変更することはできません。Toperator->T const *

于 2012-05-27T02:14:00.890 に答える
0

@ K-balloは正しいですが、ランダムが最善の方法ですが、アルゴリズムによって異なります。それらについても説明していただけますか?

于 2012-05-27T00:41:33.790 に答える