[C언어] C++ 표준라이브러리(STL) 정리

업데이트:

C++ 표준라이브러리(STL) 정리

1.STL이란

STL이란, 표준 C++ 라이브러리(standard template library)이며, 프로그램에 필요한 자료구조와 알고리즘을 템플릿으로 제공한다.

2.STL 구성요소

1.컨테이너(container) 2.반복자(iterator) 3.알고리즘(algorithm) 4.함수자(functor)

2.1 컨테이너

컨테이너는 데이터를 저장하는 객체다.

  • 표준 연속 컨테이너: vector, deque, list
  • 표준 연관 컨테이너: set, multiset, map, multimap, hash_set, hash_multiset, hash_multimap

2.2 반복자

STL은 반복자의 5가지 종류를 구현한다.

2.2.1 입력 반복자(input iterators): 읽기만 가능, 순방향 이동(only read)

입력 반복자가 갖춰야할 세가지 요구사항

  • 반복자는 다른 반복자와 상등여부 비교 가능해야한다. 같은 위치를 가리키면 같은것, 그렇지 않으면 다른 것.
  • 반복자는 * 연산자를 사용하여 반복자가 가리키는 값을 얻을 수 있어야 한다.
  • 반복자는 ++ 연산자를 사용하여 다음 원소를 가리킬 수 있도록 증가될 수 있어야 한다.

2.2.2 출력 반복자(output iterators): 쓰기만 가능, 순방향 이동(only write)

2.2.3. 순방향 반복자(forward iterators): 읽기/쓰기 모두 가능, 순방향 이동

2.2.4. 양방향 반복자(bidirectional iterators): 읽기/쓰기 모두 가능, 순방향/역방향 이동

2.2.5. 임의 접근 반복자(random access iterators): 읽기/쓰기 모두 가능, 임의 접근

2.3 알고리즘

STL에서 제공되는, 검색이나 정렬 같은 활동을 수행하는 알고리즘은 대부분 반복자의 특정한 수준을 요구함.

2.4 함수자

STL은 함수 호출 연산자(operator())를 오버로드하는 클래스들을 포함한다. 이러한 클래스들의 인스턴스들은 함수자 또

참고: 위키백과