개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.10 11:40

InternalIterator::current 관련 질문

목록
  • RESTful도령 15시간 전 2025.08.10 11:40 새글
  • 4
    1
내가 사용 중인 STL Container에서 InternalIterator::current를 사용하여 현재 반복 변수의 값을 가져오려는데, 이 메서드의 반환 타입이 const 참조 타입인 이유를 모르겠습니다.

InternalIterator::current는 반복 변수의 값을 가져오는 메서드이지만, 반환 타입이 const 참조 타입인 이유가 무엇인가요?

예를 들어, 내부 반복 변수를 변경하려면 어떻게 해야 하나요?

InternalIterator::current를 사용하여 현재 반복 변수의 값을 가져오려 하는데, 이 메서드의 반환 타입이 const 참조 타입인 이유를 알려주세요.

    댓글목록

    profile_image
    나우호스팅  15시간 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 43,126건 / 10 페이지

검색

게시물 검색