PS/STL

set

KimMinJun 2022. 1. 30. 18:26
  • 노드 기반 컨테이너이며 균형 이진트리로 구현되어있다.
  • key라 불리는 원소들의 집합으로 이루어진 컨테이너 이다.
  • 중복이 허용 되지 않는다.
  • insert 함수에 의해 삽입되면 자동으로 정렬된다.

 

set의 사용법

#include <set>
using namespace std;

int main() {
   set<int> s1;
   set<pair<int, string> > s2;
   
   return 0;
}

 

  • <set> 헤더 파일을 선언해주어야 한다.
  • set<type> 변수명; 으로 선언한다.

 

 

set의 멤버 함수

  • s.begin()
    • 맨 첫번째 원소를 가리키는 iterator를 return 한다.
  • s.end()
    • 맨 마지막 원소의 다음을 가리키는 iterator를 return 한다.
  • s.rbegin()
  • s.rend()
  • s.clear()
    • 모든 원소를 제거
  • s.count(k)
  • s.empty()
    • set s가 비어있는지 확인 (bool형으로 return)
  • s.insert(k)
    • 원소 k를 삽입한다.
    • 삽입시에 자동으로 정렬되고, 중복은 제거된다.
  • s.insert(iter, k)
  • s.erase(iter)
    • iter가 가리키는 원소를 제거한다.
    • 제거 한다음 제거 한 원소의 다음 원소를 가리키는 iterator를 return 한다.
  • s.erase(start, end)
    • start부터 end 범위의 원소를 모두 제거한다.
  • s.find(k)
    • 원소 k를 가리키는 iterator를 return한다.
    • 원소 k가 없다면 s.end()와 같은 반복자를 return한다.
  • s2.swap(s1)
  • s.upper_bound(k)
    • 원소 k가 끝나는 구간의 iterator 이다.
  • s.lower_bound(k)
    • 원소 k가 시작하는 구간의 iterator 이다.
  • s.equal_range(k)
  • s.value_comp()
  • s.key_comp()
  • s.size()
    • s의 사이즈를 reutrn한다.
  • s.max_size()