고정 크기의 배열 : array
가변 크기의 배열 : vector
실행중에 메모리 할당.
Overhead
프로그램 실행흐름에서 동떨어진 위치의 코드를 실행할 때, 추가적으로 시간, 메모리 등의 자원이 사용되는 현상
capacity vs size
size = 할당 된 요소 수
capacity = 메모리에 할당 된 용량의 크기이다.
원래 초기화 했던 vector를 넘어가면, size는 length처럼 가변적으로 변한다.
capacity또한 변하긴 하는데, 2배 단위로 늘어나고, pop과 같이 요소를 삭제해도 다시 줄어들지 않는다.
shrink_to_fit()와 같은 함수를 사용하면 다시 줄일 수 있다.
기본 문법 및 명령어
===참조=== | |
v[idx] | idx 번째 원소 참조 |
v.at(idx) | idx번째 원소 참조 |
v.front(),v.back() | 첫번째 데이터의 값 / 마지막 데이터의 값 |
v.begin(), v.end() | 첫번째 데이터의 위치 / 마지막 데이터의 위치 |
===삽입, 삭제=== | |
v.push_back(데이터 값) | 데이터를 맨 끝에 삽입 |
v.pop_back() | 맨 끝 데이터 삭제 |
v.insert(데이터 위치, 데이터 값) | 특정 위치에 데이터 삽입 |
v.erase(데이터 위치) | 특정 위치에 데이터 삭제 |
v.clear() | 모든 원소 제거(size는 줄고, capacity는 유지) |
===크기=== | |
v.size() | 벡터의 원소 개수 리턴 |
v.capacity() | 벡터에 할당된 원소 개수 리턴 |
v.resize(n), v.resize(n,10) | 벡터 size를 n으로 변경 ( + 데이터를 10으로 초기화) |
v.empty() | 비어있는지 확인 |
v.shrink_to_fit() | capacity를 벡터 크기에 맞춤 |
'코딩 > C, C++' 카테고리의 다른 글
[C++] 문자열을 정수로 바꾸기, 문자열 파싱하기 (stringstream, sstream) (0) | 2024.03.24 |
---|---|
[C++] 포인터 call by reference, new 연산자 (0) | 2024.03.20 |
C언어로 게임 만들기(7) - 완성. (코드, 구현 영상) (0) | 2023.06.02 |
C언어로 게임 만들기(5) - 게임 씬 추가(getch함수, exit함수) (0) | 2023.05.28 |
C언어로 게임 만들기(4) - 적 구현(rand함수, srand함수, time함수) (1) | 2023.05.20 |