728x90
반응형

  ▶ 컨테이너란

   컨테이너는 같은 타입을 저장, 관리할 목적으로 만들어진 클래스입니다. 컨테이너는 두 가지로 나눕니다.(총 7가지 컨테이너를 제공합니다)

  - 표준 시퀀스 컨테이너(standard sequence container) : 컨테이너 원소가 자신만의 삽입 위치(순서)를 가지는 컨테이너(vector, deque, list : 선형적)

  - 표준 연관 컨테이너(standard associativ container) : 저장 원소가 삽입 순서와 다르게 특정 정렬 기준에 의해 자동 정렬되는 컨테이너(set, multiset, map, multimap : 비선형적)

시퀀스 컨테이너는 vector, deque, list 세가지가 있습니다. 연관 컨테이너는 set, multiset, map, multimap 네가지가 있습니다. 시퀀스 컨테이너는 삽입되는 순서에 따라 원소의 위치가 결정되고 바뀌지 않습니다. 하지만 연관 컨테이너는 삽입 순서와 상관없이 정렬 기준(디폴트 less)에 따라 원소의 위치가 결정됩니다.

▶ 또한 컨테이너는 데이터를 하나의 연속한 메모리 단위로 저장하느냐에 따라 두 가지로 나눕니다.

   - 배열 기반 컨테이너(array-based container) : 데이터 여러 개가 하나의 메모리 단위에 저장됩니다.(vector, deque)

   - 노드 기반 컨테이너(node-based container) :  데이터 하나를 하나의 메모리 단위에 저장합니다(list, set, multiset, map, multimap)

▶ 배열 기반 컨테이너는 vector와 deque 두 가지입니다. 노드 기반 컨테이너는 list와 연관 컨테이너 모두 set, multiset, map, multimap 다섯 가지입니다. 이런 컨테이너 종류는 성능이나 메모리 사용, 지원 인터페이스(알고리즘, 멤버함수) 등에 큰 차이를 보이며 컨테이너의 특징을 만들어 냅니다. 그래서 상당히 중요합니다.

▶ 대표적인 컨테이너가 vetor입니다. vector는 시퀀스 컨테이너이며 배열 기반 컨테이너입니다. 시퀀스 컨테이너는 컨테이너 끝에 데이터를 추가하고 제거하기 위한 push_back()과 pop_back() 멤버 함수를 가집니다. 또한 배열 기반 컨테이너는 operator[] 연산자를 이용해 일반 배열처럼 컨테이너 원소에 접근할 수 있습니다. 모든 컨테이너는 원소의 개수를 반환하는 size()멤버 함수를 가집니다.

▶ vector 컨테이너는 대표적인 시퀀스 컨테이너로 배열과 비슷하여 사용이 쉬으므로 자주 사용됩니다.  시퀀스 컨테이너는 차례차례 원소를 추가하고 제거하는 push_back()과 pop_back()을 가지며, 첫 원소와 마지막 원소를 참조하는 front()와  back()을 가집니다.

반응형
Posted by 명문코딩컴퓨터
,