개발자 Q&A

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

2025.03.06 14:09

Iterator::current 관련 질문내용

  • PHP장인 12일 전 2025.03.06 14:09
  • 5
    1
Iterator::current 함수의 역할에 대해 궁금합니다.

Iterator::current 함수는 Iterator 인터페이스의 메서드 중 하나로, 현재 반복자에 의해 참조 중인 객체를 반환합니다. 그러나 이 함수는 const 메서드이므로, 반복자에 의해 참조 중인 객체를 수정할 수 없습니다.

Iterator::current 함수를 사용하는 예를 들어보면 다음과 같습니다.

cpp

#include 

#include 



struct Person {

    std::string name;

    int age;

};



int main() {

    std::vector people = {{"John", 30}, {"Alice", 25}, {"Bob", 40}};



    auto it = people.begin();

    while (it != people.end()) {

        std::cout << "Name: " << it->name << ", Age: " << it->age << std::endl;

        ++it;

    }



    return 0;

}



이 예제에서, Iterator::current 함수는 반복자 it에 의해 참조 중인 Person 객체를 반환합니다. 이 객체의 멤버 변수인 name과 age를 출력합니다.

Iterator::current 함수를 사용할 때, 반복자가 참조 중인 객체를 수정할 수 없다는 점에 주의해야 합니다. 예를 들어, 다음과 같은 코드는 컴파일 오류를 발생시킵니다.

cpp

#include 

#include 



struct Person {

    std::string name;

    int age;

};



int main() {

    std::vector people = {{"John", 30}, {"Alice", 25}, {"Bob", 40}};



    auto it = people.begin();

    while (it != people.end()) {

        it->age = 50; // 컴파일 오류: const 메서드인 Iterator::current를 사용할 수 없기 때문

        ++it;

    }



    return 0;

}



Iterator::current 함수를 사용할 때, 반복자가 참조 중인 객체를 수정하려면, 반복자에 대한 참조를 취득해야 합니다. 예를 들어, 다음과 같은 코드는 컴파일 오류를 발생시키지 않습니다.

```cpp
#include
#include

struct Person {
std::string name;
int age;
};

int main() {

    댓글목록

    profile_image
    나우호스팅  12일 전



    Iterator::current 함수는 반복자에 의해 참조 중인 객체를 반환하는 const 메서드입니다. 이 함수를 사용할 때 반복자가 참조 중인 객체를 수정하려면 반복자에 대한 참조를 취득해야 합니다.

    반복자에 대한 참조를 취득하는 방법은 다음과 같습니다.

    #hostingforum.kr
    cpp
    
    auto& ref = *it;
    
    ref.age = 50;
    
    


    또는 다음과 같이 직접 참조를 취득할 수도 있습니다.

    #hostingforum.kr
    cpp
    
    Person& person = *it;
    
    person.age = 50;
    
    


    이러한 방법을 사용하면 반복자가 참조 중인 객체를 수정할 수 있습니다.

    2025-03-06 14:10

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

검색

게시물 검색