ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • STL vector / deque 주요 특징 정리
    @ 16. 1 ~ 17. 1/STL 2013. 5. 27. 19:46

    vector는 임의 접근 반복자를 지원하는 배열 기반 컨테이너입니다. vector의 가장 큰 특징 중 하나는 원소가

    하나의 메모리 블록에 연속(배열 기반 컨테이너)하게 저장된다는 것입니다.

     

    원소가 추가되거나 삽입될 때 메모리 재할당이 발생할 수 있음.

    그래서 메모리 하당 크기를 알 수 있게 capacity() 멤버 함수가 있고, 한번에 메모리를 할당하고 사용할 수 있는 reserve()멤버 함수가 있다.

    원소에 접근하는 것은 at()나 v[i]로 가능하며 둘다 같은 기능이지만,

    at()은 유효범위를 점검하여 안전하게 원소에 접근하나 접근속도가 낮지만 []은 그 반대이다. 유효점검 x 속도 up

     

    또한 시퀀스 기반 컨테이너 이므로 원소가 서로 상대적인 위치를 유지하므로 가장 앞 요소와 가장 뒤 요소를 참조하는 front(), back()멤버함수를 제공함.

    컨테이너 끝에 추가하고 제거하는 push_back() 과 pop_back()멤버 함수가 있다.

    시퀀스기반이지만 배열기반이므로 push_front()와 pop_front()는 없다.

     

     

    STL 컨테이너 중 deque와 vector는 배열 기반 컨테이너로서 임의 접근 반복자를 지원함.

    노드 기반 컨테이너인 나머지 컨테이너 list, set, map, multiset multimap은 양방향 반복자를 지원함.

    즉 deque, vector는 +,-,+=,-=,[]연산이 모두 가능..

    deque가 vector와 가장 큰 차이점은 메모리 할당부분임.

    vector의 경우 새로운 원소가 추가될 때 메모리 재할당과 이전 원소 복사 문제가 발생되나..

    dque는 메모리가 부족할 시 (원소가 추가되어 부족해질시) 일정한 크기의 새로운 메모리 구간을 할당함.

    또한 앞쪽에 원소를 추가/삭제 push_front(), pop_front()가 있음.

    그리고 insert(), erase()시 제거될 위치부터 모든 원소를 밀어내나 vector의 경우 뒤쪽으로만 해야하는데..

    deque의 경우 적은 앞으로도 가능하다는 것..

    '@ 16. 1 ~ 17. 1 > STL' 카테고리의 다른 글

    컨테이너 & 반복자 & 알고리즘 & 함수객체  (0) 2014.04.10
    STL list 주요 특징 정리  (0) 2013.05.27
    vector<STL> 사용하기(2)  (0) 2013.03.18
    vector<STL> 사용하기  (0) 2013.03.10
    STL List(1)  (0) 2013.02.11
Designed by Tistory.