[ C++ ] set

반영서·2023년 1월 18일
0

C / C++

목록 보기
5/5
post-thumbnail

[ C++ ] set container

알고리즘 문제를 풀다보면, set을 사용하면 쉽게 풀 수 있는 문제들이 있다.

그래서 오늘은 set이 어떤 특징을 가졌고, 어떻게 쓰는지 정리해볼려고 한다.

특징

  • key 값은 중복이 허용되지 않음.
  • 원소가 insert 함수에 의해 삽입되면, 원소는 자동으로 정렬됨.
  • 디폴트 정렬기준은 오름차순이다.

사용법

  • set s;

    • 기본 선언 방법.
  • set s(sortRule);

    • sortRule을 통해 정렬 기준을 세움.
  • set s2(s1);

    • s1을 복사하여 s2 set을 생성.

멤버 함수

  • s.begin();

    • 첫 번째 원소를 가리키는 반복자 반환
  • s.end();

    • 마지막 원소의 다음을 가리키는 반복자 반환
  • s.rbegin(); s. rend();

    • begin()과 end()의 반대.

ex)

 for(iter = s.rbegin(); iter != s.rend(); iter++){
    cout << * iter << endl;
}
  • s.clear();

    • 모든 원소를 제거.
  • s.count(x);

    • 원소 x의 개수를 반환.
  • s.size();

    • set의 크기를 반환.
  • s.empty();

    • set이 비었는지 확인.
  • s.insert(x);

    • 원소 x를 삽입.
    • 삽입 시, 자동으로 정렬된 위치에 삽입됨.
  • s.insert(iter, x);

    • iter가 가리키는 위치부터 x를 정렬삽입.
  • s.erase(iter);

    • iter가 가리키는 원소를 제거.
    • 다음 원소를 가리키는 반복자를 반환.
  • s.find(x);

    • 원소 x를 가리키는 반복자 반환.
    • 원소 x가 없다면, s.end()와 같은 반복자를 반환.
  • s2.swap(s1);

    • s1과 s2를 바꿈.
  • s.lower_bound(x);

    • 원소 x가 시작하는 구간의 반복자 반환.
  • s.upper_bound(x);

    • 원소 x가 끝나는 구간의 반복자 반환.




관련문제: [ 알고리즘 ] 프로그래머스: 두 개 뽑아서 더하기

profile
커지고 싶은 신입개발자

0개의 댓글