2011-02-02 3 views
2

왜 C++을 사용하는 반복자 선언에서 범위 연산자 "::"? iterator 때문에범위 연산자와 반복자

std::vector<int>::iterator i; 
+0

입니다. 그렇지 않다면 우리는'* i'가 무엇을 반환했는지 어떻게 알 수 있을까요? – Marlon

답변

3

가 글로벌 범위에서 정의되지 않은, 그것은 std::vector<int> 클래스에 정의 된 유형입니다.

이것은 또한 당신이 그렇게에 대한 자세한 예를 std::list<...>::iterator, std::set<...>::iterator, std::map<...>::iterator에 대해 서로 다른 범위에 iterator라는 이름의 클래스 등을 가질 수 있음을 의미한다; 모든 클래스는 서로 다른 클래스이며 모두 이름이 iterator이지만 각각 다른 클래스에 정의되어 있습니다. iterator` 벡터의 종류에 특별한`때문에

+1

또한이 규칙을 따른다면 형식 매개 변수에 대한 반복기를 참조 할 수 있음을 의미합니다. 예 :'T :: iterator' –

1

반복자는 클래스 표준의 형식 정의 : 벡터 <>