[C++] STL 컨테이너란 ?

aonee·2020년 6월 18일
0

C++

목록 보기
3/9

📌 컨테이너란 ?

같은 타입의 객체를 저장, 관리할 목적으로 만들어진 클래스

  • 컨테이너에 저장된 객체는 컨테이너가 소유한다.
  • 컨테이너의 수명이 끝나면 객체의 수명도 끝난다. (단, 포인터는 예외)
  • 복사 생성자 또는 대입 연산자의 호출이 가능한 타입만 컨테이너에 저장된다.


📌 종류

1. 표준 시퀀스 컨테이너

  • 선형적
  • 종류 : vector, deque, list

2. 표준 연관 컨테이너

  • 비선형적
  • 종류 : set, multiset, map, multimap

3. 근사 컨테이너

  • 문자만 저장하는 컨테이너 : String
  • 내장 배열 컨테이너 : arr, valarray


📌 데이터 저장 방식에 따른 구분

1. 배열 기반 컨테이너

  • array-based container
  • 데이터 여러개가 하나의 메모리 단위에 저장됨
  • 종류 : vector, deque

2. 표준 연관 컨테이너

  • node-based container
  • 데이터 하나를 하나의 메모리 단위에 저장됨
  • 종류 : list, set, multiset, map, multimap


📌 대표적 시퀀스 컨테이너 특징

1. 벡터 (vector)

  • #include < vector >
  • 배열처럼 동작
  • 동적 배열로 힙에 저장
  • 단점 : 삽입, 삭제 느림
  • 장점 : 배열처럼 임의접근은 빠르다

2. 배열 (array)

  • #include < array >
  • 크기 고정
  • 정적배열로 스택에 저장
  • 단점 : 삽입, 삭제 느림
  • 장점 : 임의접근은 빠르다

3. 덱 (deque)

  • #include < deque >
  • 벡터와 유사
  • 시작과 끝에서 빠르게 삽입 삭제 가능
  • 장점 : 임의 접근 및 유연한 길이

4. 리스트 (list)

  • #include < list >
  • 이중 연결 리스트 구조
  • 단점 : 임의 접근 불가능
  • 장점 : 모든 위치에서 양방향 접근 가능, 빠른 삽입 삭제 가능

5. 포워드 리스트 (forward-list)

  • #include < forward_lsit >
  • 단순 연결 리스트 구조
profile
https://github.com/devAon 찰나의 개발흔적을 남기는 개발블로그 입니다 🐥 https://aonee.tistory.com 에서 Velog로 블로그 이전 작업중입니다 ! 🎶

0개의 댓글