[STL/C++] 연관 컨테이너

2 분 소요

내가 보려고 만든 C++ STL 정리 - associate Container

연관 컨테이너는 set, multiset, map, multimap이 있고 모두 같은 인터페이스를 제공한다.

set의 주요 인터페이스

템플릿 형식  
template<typename Key, typename Pred=less<Key>, typename Allocator=allocator<Key>> class set Key는 set 컨테이너 원소의 형식이며, Pred는 set의 정렬 기준인 조건자이다. 기본 조건자는 less이다
생성자  
set s; s는 빈 컨테이너다
set s(pred) s는 빈 컨테이너
set s(s2) s는 s2 컨테이너의 복사본이다(복사 생성자 호출)
set s(b, e) s는 반복자 구간 [b, e)로 초기화된 원소를 갖는다
set s(b, e, pred) s는 반복자 구간 [b, e)로 초기화된 원소를 갖는다. 정렬 기준은 pred조건자를 사용한다
멤버 함수  
p = s.begin() p는 s의 첫 원소를 가리키는 반복자다(const, 비 const 버전이 있음)
s.clear() s의 모든 원소를 제거한다
n = s.count(k) 원소 k의 개수를 반환한다
s.empty() s가 비었는지 조사한다
p = s.end() p는 s의 끝을 표식하는 반복자다(const, 비 const 버전이 있음)
pr = s.equal_range(k) pr은 k 원소의 반복자 구간인 pair객체다(const, 비 const 버전이 있음)
q = s.erase(p) p가 가리키는 원소를 제거한다. q는 다음 원소를 가리킨다
n = s.erase(k) k 원소를 모두 제거한다. n은 제거한 개수이다
p = s.find(k) p는 k 원소의 위치를 가리키는 반복자다(const, 비 const 버전이 있음)
pr = s.insert(k) s 컨테이너에 k를 삽입한다. pr은 삽입한 원소를 가리키는 반복자와 성공 여부의 bool값인 pair객체다
q = s.insert(p, k) p가 가리키는 위치부터 빠르게 k를 삽입한다. q는삽입한 원소를 가리키는 반복자이다
s.insert(b, e) 반복자 구간 [b, e)의 원소를 삽입한다
pred = s.key_comp() pred는 s의 key정렬 기준인 조건자다(key_compare 타입)
p = s.lower_bound(k) p는 k의 시작 구간을 가리키는 반복자다(const, 비 const 버전이 있음)
n = s.max_size() n는 s가 담을 수 있는 최대 원소의 개수다(메모리의 크기)
p = s.rbegin() p는 s의 역 순차열의 첫 원소를 가리키는 반복자다(const, 비 const 버전이 있음)
p = s.rend() p는 s의 역 순차열의 끝 원소를 표식하는 반복자다(const, 비 const 버전이 있음)
s.size() s 원소의 개수다
v.swap(v2) v와 v2를 swap한다
p = s.upper_bound(k) p는 k의 끝 구간을 가리키는 반복자다(const, 비 const 버전이 있음)
pred = s.value_comp() pred는 s의 value 정렬 기준인 조건자다(const, 비 const 버전이 있음)
연산자  
s1 == s2 s1과 s2의 모든 원소가 같은가(bool 형식)
s1 != s2 s1과 s2의 모든 원소 중 하나라도 다른 원소가 있는가?(bool 형식)
s1 < s2 생략
s1 <= s2 생략
s1 > s2 생략
s1 >= s2 생략

멤버 형식

  • allocator_type
  • const_iterator
  • const_pointer
  • const_reference
  • const_reverse_iterator
  • difference_type
  • iterator
  • key_compare
  • key_type
  • pointer
  • reference
  • reverse_iterator
  • size_type
  • value_compare
  • value_type

multiset 컨테이너

원소를 중복으로 넣을 수 있다는 점을 빼면 set과 동일하다.

map 컨테이너

key와 value를 함께 저장하는 컨테이너, set과 동일한 인터페이스를 가진다. key는 유일하다.

multimap 컨테이너

map과 동일 중복 key가능

카테고리:

업데이트:

댓글남기기