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->。也就是说,如果您将计数保留在迭代器中,operator*则应返回 a T(value) 和operator->a T const *,以便无法通过这些运算符修改迭代。

于 2012-05-27T02:14:00.890 回答
0

@K-ballo 是对的,随机是最好的方法,但取决于算法。请你也描述一下它们好吗?

于 2012-05-27T00:41:33.790 回答