[C++] <set> 순회

Kim Yuhyeon·2022년 9월 21일
0

C++

목록 보기
21/25

set은 배열처럼 s[3] 이런 식으로 인덱스로 접근할 수 없다.
set을 순회하고 싶다면 다음과 같이 해야 한다.

for (set<int>::iterator iter = s.begin(); iter != s.end(); iter++) {
	cout << *iter << " ";
}

iterator는 포인터이다. 포인터는 주소를 담고 있기 때문에 그 주소에 있는 값을 출력해보려면 * 연산자로 접근해야 한다. *iter 이렇게 말이다.

s.begin()은 set의 시작 주소이다.
for문 헤더에서 iterator를 s.begin()으로 초기화한다.
그러면 iter는 set의 시작 주소를 가리키게(저장하게) 된다.

그리고 for문으로 진입한다.

for문에 진입해서는 역참조연산자 *를 이용해서 set의 원소의 값을 출력한다.

그리고 iter++을 통해 그 주소를 4바이트만큼(int 타입이므로) 증가한다. 이 과정을 set의 마지막 주소에 가기 전까지 반복하면 된다.

아니면

for(auto x : s){
	cout << x << " ";
}

💡 참고 포스팅

[C++] 라이브러리, set 사용법

0개의 댓글