나는 C++ 프라이머 5를 읽고 있어요, 나는 다음과 같다 코드가 발생 :포인터가 아니더라도 C++ 반복기를 역 참조 할 수 있습니까?
string s("some string");
if (s.begin() != s.end())
{
auto it = s.begin();
*it = toupper(*it);
}
it
문자열 s
의 첫 번째 문자로 반복자의 값을 수신을; toupper()
에 의해 대문자로 변경됩니다. it
은 어떻게 역 참조 될 수 있습니까? 그냥 char 형식의 변수가 아니라 포인터가 아니어야합니까?
'it'는'char' 변수가되어야한다고 생각합니까? 반복자는 포인터와 비슷하게 동작하지만'연산자 ++ '는 배열이 아닌 링크 된 목록과 맵을 통해 이동할 수 있도록 재정의됩니다. –
반복자의 참조 해제 연산자는 복사본이 아닌 문자에 대한 참조를 반환합니다. –