
InternalIterator::current의 반환 타입이 const 참조 타입인 이유는, 반복 변수의 값을 읽기 전용으로 제공하기 위함입니다.
반복 변수의 값을 읽기 전용으로 제공하는 이유는, 반복 변수의 값을 변경하면 반복자 자체가 무효화되어 사용할 수 없게 되기 때문입니다.
반복 변수의 값을 변경하려면, 반복자 자체를 재생성하거나, 반복 변수의 값을 변경하기 전에 반복자에 대한 참조를 저장한 후, 변경 후에 다시 참조를 사용하는 방법이 있습니다.
예를 들어, 내부 반복 변수를 변경하려면 다음과 같이 할 수 있습니다.
#hostingforum.kr
cpp
auto it = container.begin();
auto value = it.current(); // 반복 변수의 값을 읽기 전용으로 가져옵니다.
it.current() = 새로운 값; // 반복 변수의 값을 변경합니다.
위 코드에서는 반복 변수의 값을 변경하기 전에, 반복 변수의 값을 읽기 전용으로 가져와서 저장한 후, 변경 후에 다시 참조를 사용합니다.
또는, 반복자 자체를 재생성하는 방법도 있습니다.
#hostingforum.kr
cpp
auto it = container.begin();
auto value = it.current(); // 반복 변수의 값을 읽기 전용으로 가져옵니다.
it = container.begin(); // 반복자 자체를 재생성합니다.
it.current() = 새로운 값; // 반복 변수의 값을 변경합니다.
위 코드에서는 반복자 자체를 재생성하여, 변경 전의 반복 변수의 값을 무효화합니다.
2025-08-10 11:41