중복이 허용되지 않고 삽입시에 자동으로 정렬되는 set은 여러모로 유용한 컨테이너이다.
set을 사용할 때 도움이 되었던 것들을 정리해 보았다.
// set s의 첫번째 값(key)을 출력
auto iter = s.begin();
cout << *iter;
// set s의 값(key)을 처음부터 끝까지 출력
for (auto iter = s.begin(); iter != s.end(); iter++) {
cout << *iter << " ";
}
set은 인덱스로 접근할 수 없지만, Iterator를 역참조하여 값을 출력할 수 있다.
s.insert(1);
s.insert(4);
s.insert(2);
// 2의 위치를 찾음
auto pos = s.find(2);
// 2가 있는 Iterator부터 끝까지 출력
for (auto iter = pos; iter != s.end(); iter++) {
cout << *iter << " ";
}
// 실행 결과
2 4
찾는 값이 없다면 s.end()를 반환한다.
시간복잡도가 O(log(n))이므로 string, vector에 비하여 빠르다.
참고) https://www.geeksforgeeks.org/set-in-cpp-stl/?ref=lbp
계속해서 추가해 나갈 예정!
좋은 글 잘 읽었습니다, 감사합니다.