Реализовать собственный класс итератора, с помощью которого можно будет проитерироваться по диапазону целых чисел в цикле for-range-based.
Написать код на C++
cpp
#include <iostream>
class RangeIterator {
private:
int current;
public:
RangeIterator(int start) : current(start) {}
// Операторы инкремента и декремента
RangeIterator& operator++() {
++current;
return *this;
}
RangeIterator& operator--() {
--current;
return *this;
}
// Операторы сравнения
bool operator==(const RangeIterator& other) const {
return current == other.current;
}
bool operator!=(const RangeIterator& other) const {
return current != other.current;
}
// Оператор разыменования
int operator*() const {
return current;
}
};
class Range {
private:
int start;
int end;
public:
Range(int start, int end) : start(start), end(end) {}
RangeIterator begin() const {
return RangeIterator(start);
}
RangeIterator end() const {
return RangeIterator(end);
}
};
int main() {
Range range(1, 5);
for (int num : range) {
std::cout << num << " ";
}
return 0;
}
В данном примере мы создаем класс RangeIterator, который представляет итератор для нашего диапазона целых чисел. Внутри класса определены операторы инкремента, декремента и сравнения, а также оператор разыменования, возвращающий значение текущего итератора.
Затем мы создаем класс Range, который представляет наш диапазон целых чисел. В этом классе определены методы begin() и end(), которые возвращают итераторы начала и конца диапазона.
В функции main() мы создаем объект класса Range и проходимся по нему в цикле for-range-based, выводя значения на экран.
Таким образом, с помощью реализации собственного класса итератора мы можем итерироваться по диапазону целых чисел в цикле for-range-based.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет