我在任何地方都没有看到它。但这将是相当微不足道的:
class range_iterator : public std::input_iterator<int, int> {
int x;
public:
range_iterator() {}
range_iterator(int x) : x(x) {}
range_iterator &operator++() { ++x; return *this; }
bool operator==(const range_iterator &r) const { return x == r.x; }
int operator*() const { return x; }
};
std::pair<range_iterator, range_iterator> range(int a, int b) {
return std::make_pair(range_iterator(a), range_iterator(b));
}
Run Code Online (Sandbox Code Playgroud)
应该可以解决问题(在我的脑海中;可能需要一些调整)。一对迭代器应该已经是范围,所以我相信您不需要自己定义开始和结束。