
Iterator::next 메서드는 Iterator 객체에서 다음 요소를 반환하는 데 사용됩니다.
Iterator 객체가 이미 끝났는지 확인하는 방법은 Iterator::next 메서드가 호출되었을 때 Iterator::valid() 메서드를 사용하는 것입니다.
Iterator::valid() 메서드는 Iterator 객체가 현재 유효한지 여부를 반환합니다.
Iterator 객체가 이미 끝났으면 Iterator::valid() 메서드는 false를 반환합니다.
예를 들어, 다음과 같이 Iterator::next 메서드를 사용할 때 Iterator::valid() 메서드를 사용할 수 있습니다.
#hostingforum.kr
c++
#include
#include
#include
int main() {
std::vector vec = {1, 2, 3, 4, 5};
auto it = vec.begin();
while (it != vec.end()) {
if (it->valid()) {
std::cout << *it << std::endl;
it++;
} else {
break;
}
}
return 0;
}
하지만, 위의 예제는 Iterator::valid() 메서드를 사용하는 것이 아니라 Iterator 객체의 끝을 직접 비교하는 것입니다.
Iterator::next 메서드를 사용할 때 Iterator 객체가 이미 끝났는지 확인하는 더 좋은 방법은 Iterator 객체가 이미 끝났는지 확인하는 메서드인 Iterator::done() 메서드를 사용하는 것입니다.
Iterator::done() 메서드는 Iterator 객체가 이미 끝났는지 여부를 반환합니다.
Iterator 객체가 이미 끝났으면 Iterator::done() 메서드는 true를 반환합니다.
예를 들어, 다음과 같이 Iterator::next 메서드를 사용할 때 Iterator::done() 메서드를 사용할 수 있습니다.
#hostingforum.kr
c++
#include
#include
#include
int main() {
std::vector vec = {1, 2, 3, 4, 5};
auto it = vec.begin();
while (!it.done()) {
std::cout << *it << std::endl;
it.next();
}
return 0;
}
Iterator::done() 메서드는 Iterator::next 메서드를 사용할 때 Iterator 객체가 이미 끝났는지 확인하는 데 사용할 수 있습니다.
2025-06-22 08:17