set::begin() 함수는 양방향 반복자(bidirectional iterator)로서, 셋(set) 컨테이너의 첫 번째 요소를 가리키는 반복자를 반환하는 데 사용됩니다.
set::end() 함수 역시 양방향 반복자로서, 셋 컨테이너의 마지막 요소 다음 위치(끝 표시)를 가리키는 반복자를 반환합니다. 따라서 begin()과 end()를 함께 사용하면 셋에 저장된 모든 요소를 처음부터 끝까지 순회할 수 있습니다.
참고로 C++의 set은 내부적으로 요소를 항상 오름차순으로 자동 정렬하므로, 삽입한 순서와 무관하게 begin()부터 end()까지 순회하면 정렬된 값이 출력됩니다.
예제 코드
#include<iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
set<int> s;
set<int>::iterator it;
s.insert(7);
s.insert(6);
s.insert(1);
s.insert(4);
s.insert(2);
s.insert(9);
s.insert(10);
for (auto it=s.begin(); it != s.end(); ++it)
cout << ' ' << *it;
return 0;
}
실행 결과
1 2 4 6 7 9 10