C++ STL 프로그래밍(벡터)







5. 벡터(Vector)

5.1 vector의 자료구조
    - 배열과 비슷하나 배열과 다르게 벡터는 크기가 동적으로 변한다.


5.2 배열의 특징
    1) 배열의 크기는 고정
    2) 데이터 중간 삽입, 삭제가 힘들다
        - 중간 데이터 삽입을 위해 뒤 데이터를 모두 이동 시켜야 한다.
    3) 구현은 쉽다
    4) 랜덤 접근이 가능


5.3 벡터를 사용해야 하는 경우
    1) 저장 데이터 공간이 가변적
    2) 중간 데이터 삽입, 삭제가 없을 때
    3) 검색 속도가 느리다(map나 set, hash_map 이 빠르다)
    4) 데이터 랜덤 접근 가능할 때


5.4 vector vs list
    
    - 데이터 개수가 적다면 list 보다 vector 가 빠르고 좋다.
    - 백터는 데이터가 메모리위에 붙어 있어 삽입 시 뒷 데이터가 한칸씩 밀린다.
    - 벡터는 재할당을 피하기 위한 reserve로 공간을 미리 할당 할 수 있다.



5.5 vector 사용방법
    - vector 헤더 파일 포함 #include <vector>
    - 선언 : vector<자료형> 변수이름;
    - 동적 선언 : vector<자료형>* 변수이름 = new vector<자료형>;


5.6 vector의 주요 멤버들
    

    5.6.1 기본 멤버 사용법
        
        


    erase 두 가지
        

    assign 두 가지
        

    reserve : 예약하다, 따로 잡아 두다
        - 벡터는 선언 시 정해진 값을 넘어갈 때 현재 벡터 크기의 2배를 재할당한다
        - 재할당을 피하기 위해 미리 공간을 할당 하는 것
            

    swap
        - 벡터 자체를 바꾸는 것. 두 개의 백터를 매개변수로 받는다.
            






댓글