본문 바로가기

C++

[C++] iterator

cout << iter->name

기존 for문

for (vector<Student_info>::size_type i = 0;
 i != students.size(); ++i)
 cout << students[i].name << endl;

 

iterator 사용

for (vector<Student_info>::const_iterator iter = students.begin();
 iter != students.end(); ++iter) {
 cout << (*iter).name << endl;
}

iterator 역시 컨테이너 값을 변경하지 않을 때는 const 키워드를 붙인다.

iterator 은 const_iterator로 자동변환되지만 그 반대는 그렇지 않다.

 

cout << (*iter).name

*iter는 iter이 나타내는 value를 반환한다. 

.의 우선순위가 *보다 높기 때문에  *iter을 괄호로 감싸야 한다.

 

cout <<iter->name

위 코드는 (*iter).name과 같은 의미로 사용할 수 있다.

 

'C++' 카테고리의 다른 글

[C++] 후위연산자  (0) 2021.12.19
[C++] vector vs list  (0) 2021.12.19
[C++] 헤더파일  (0) 2021.12.18
[C++] Call by Value ,Call by Address, Call by Reference  (0) 2021.12.18
[C++] typedef  (0) 2021.12.17