STL이란?

Kim Sung Kyu·2021년 4월 15일
0

C++🚁

목록 보기
1/8

STL

  • C++ 표준 템플릿 라이브러리 (Standard Template Library)
  • 프로그램에 필요한 자료구조와 알고리즘을 Template으로 제공

1. 장단점

장점단점
일반화 지원템플릿 기반이므로 코드가 비대해짐
실행시 효율 저하 거의 없음가독성이 떨어짐
표준이므로 이식성 뛰어남
확장 가능

2. 구조

iterator(반복자)

  • STL 전용 포인터, 가리키는 원소에 접근하여 다음 원소를 가리킴

Algorithm(알고리즘)

  • 정렬, 삭제, 검색, 연산 등 간단하게 호출하여 사용하게 구성되어 있음

Allocator(할당기)

  • 컨테이너의 메모리 할당 정책을 캡슐화한 클래스 객체
  • 모든 컨테이너는 자신만의 할당 크기를 가지고 있음

Function Object(함수 객체)

  • 함수처럼 동작하는 객체
  • operator() 연산자를 오버로딩

Adaptor(어댑터)

  • 구성 요소의 인터페이스를 변경하여 새로운 인터페이스를 갖는 구성 요소로 변경
  • 어댑터 컨테이너

3. 종류

시퀸스 컨테이너(Sequence Container)

  • 자료를 입력한 순서대로 저장
  • 검색 및 삽입, 삭제 속도가 느림
  • 많지 않은 양의 자료 / 검색 속도가 중요하지 않으면 사용.
  • 종류 : array (C++ 11), vector, list, deque

연관 컨테이너(Associative Container)

  • 트리 구조
  • 검색 및 삽입, 삭제 속도가 빠름
  • 많은 양의 자료 / 빠른 검색이 중요한 경우 사용
  • 종류 : set, multiset, map, multimap

어댑터 컨테이너(Adaptor Container)

  • 시퀸스 컨테이너를 변형하여 사용
  • 종류 : stack, queue, priority_queue

4. 상황별 컨테이너 선택

1. 적은양의 데이터

  • array
  • vector
  • list / forward_list

2. 많은양의 데이터 + 검색 활발

  • map
  • set


참고

https://code-algalon.tistory.com/188
https://ko.wikipedia.org/wiki/%ED%91%9C%EC%A4%80_%ED%85%9C%ED%94%8C%EB%A6%BF_%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC

profile
꿈꾸던 내가 될꺼야😃

0개의 댓글