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
- 벡터 자체를 바꾸는 것. 두 개의 백터를 매개변수로 받는다.

댓글
댓글 쓰기