
IteratorIterator::next 함수는 IteratorIterator 객체의 다음 요소를 반환하는 함수입니다. 이 함수를 호출하면 IteratorIterator 객체의 상태가 변하는데, 다음 요소를 반환하고 IteratorIterator 객체는 다음 요소로 포인터를 이동시킵니다.
IteratorIterator::next 함수를 호출하기 전에 IteratorIterator 객체가 유효한 요소를 가리키고 있는지 확인해야 합니다. IteratorIterator 객체가 유효한 요소를 가리키고 있지 않다면 IteratorIterator::next 함수를 호출하면 예외가 발생합니다.
IteratorIterator 객체의 상태를 확인하기 위해서는 IteratorIterator::hasNext 함수를 사용할 수 있습니다. IteratorIterator::hasNext 함수는 IteratorIterator 객체가 다음 요소를 가리키고 있는지 여부를 반환합니다.
IteratorIterator::next 함수를 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
cpp
#include
#include
class Iterator {
public:
virtual bool hasNext() = 0;
virtual int next() = 0;
};
class IteratorIterator : public Iterator {
private:
std::vector data;
int index;
public:
IteratorIterator(const std::vector& data) : data(data), index(0) {}
bool hasNext() override {
return index < data.size();
}
int next() override {
if (!hasNext()) {
throw std::out_of_range("IteratorIterator::next");
}
return data[index++];
}
};
int main() {
std::vector data = {1, 2, 3, 4, 5};
IteratorIterator iterator(data);
while (iterator.hasNext()) {
std::cout << iterator.next() << std::endl;
}
return 0;
}
이 예제에서는 IteratorIterator 클래스를 구현하여 Iterator 인터페이스를 구현합니다. IteratorIterator::next 함수를 호출하면 IteratorIterator 객체의 다음 요소를 반환하고 IteratorIterator 객체는 다음 요소로 포인터를 이동시킵니다. IteratorIterator::hasNext 함수를 호출하면 IteratorIterator 객체가 다음 요소를 가리키고 있는지 여부를 반환합니다.
2025-08-15 12:52