본문 바로가기
IT-개발,DB

[개발/STL] vector, list, map

by SB리치퍼슨 2013. 4. 26.


#include <vector>

#include <list>

#include <map>


Vector: 시퀀스 컨테이너, 연속 메모리 기반 컨테이너


1. 메모리가 증가할 때 현재 메모리의 1.5배로 증가.

2. 삽입, 삭제보다는 검색에 용이하다.

3. 삽입, 삭제시에는 메모리를 재할당하고 컨테이너를 복사해야 한다.

4. 배열은 정적이지만, 벡터는 동적이다. 랜덤 지정 엑세스 연산자를 지원하기 때문에 접근이

    빠르다는 장점이 있다. 배열의 특성을 가지고 있기 때문에 메모리의 중간에서 삽입, 삭제는 굉장히

    불편하다. 굳이 구현은 가능하지만, 비효율적이다.

<사용방법>

#include <vector>

vector<int> vec1;

vector<int>* vec2 = new vector<int>; 

 

-List: 시퀀스 컨테이너, 노드 기반 컨테이너


1. 삽입, 삭제에 용이하다. 배열이나 벡터처럼 연속적인 메모리 구조가 아니기 때문.

2. 메모리 낭비가 없고, 메모리 주소로 조작하기 때문에 데이터의 추가, 삭제에 따른 추가적인 연산이

    필요없다. 

3. 랜덤 지정 엑세스 연산자는 지원하지 않는다.

 

-Map: 연관 컨테이너의 대표


1. key와 value로 구성된 자료구조다.

2. 트리구조. 자동 정렬이 되어 있다. 따라서 검색은 빠르나 삽입, 삭제는 느리다.

반응형

댓글