본문 바로가기

IT/Programming Language

[C++/STL] STL이란

반응형

STL이란

  • Standard Template Library
  • 여러 자료 구조, 함수, 알고리즘 등을 쓰기 쉽게 정형화해서 라이브러리화 한 것
  • 알고리즘, 컨테이너, 함수자, 반복자 4가지로 구성

 

구성 요소

STL Container : 컨테이너

  • 흔히 자료 구조라 하며, 데이터를 저장하는 객체
  • STL 컨테이너는 클래스 템플릿 형태로 제공
  • 동적으로 크기가 변경 가능한 컨테이너 (vector, list, deque)와 고정된 크기를 가지는 컨테이너 (array) 등 다양한 형태가 있음
  • 표준 연속 컨테이너인 vector, deque, list 등이 있고, 표준 연관 컨테이너인 set, multiset, map, multimap 등이 있음

 

STL Iterator : 반복자

  • 컨테이너의 원소들을 순회하거나 접근하는 방법을 제공하는 객체
  • 반복자는 포인터와 비슷하게 동작하며, 각 컨테이너의 데이터 위치를 가리킴
  • 반복문 등에서 컨테이너에 접근해서 데이터를 가져올 때 쓰면 용이

 

STL Algorithm : 알고리즘

  • 정렬, 검색, 복사 등 특정한 작업을 수행하는 함수들을 제공
  • STL 알고리즘은 함수 템플릿 형태로 제공되며 대부분의 알고리즘은 반복자를 통해 컨테이너의 원소에 접근
  • 예로 sort, binary_search, lower_bound 등 정렬, 검색, 연산 등을 해결하는 함수가 있음
반응형