vector와 array의 차이

김대익·2022년 2월 10일
0

vector는
Dynamic Size Array 다이나믹
Sequence Container 연속적인 배열

vector를 사용하지 않은 Dynamic array의 예

Stack에 numsPtr라는 포인터가 만들어지고
Heap에 5칸의 연속적인 메모리공간이 만들어진다.
numsPtr는 Heap에 있는 연속적인 메모리공간을 가리킨다.

int main() {
	int * numsPtr = new int[5];
    for (int i = 0; i < 5; i++) {
    	numsPtr[i] = i;
    }
    delete[] numsPtr;
}

이 경우 delete[] numsPtr를 하지 않으면 메모리 누수가 일어나고, 제약이 있어
Dynamic array를 관리해주는 컨테이너를 제공하는데, 이것이 바로 "벡터"이다.

아래는 벡터에 0부터 4까지 요소를 넣는 예와
0부터 4까지 요소를 넣은 뒤 5를 push하는 코드이다.
아래에 보이는 것과 같이 잡고있는 메모리를 풀어주지 않는다.
벡터 STL에서 알아서 메모리를 할당하고 해제해주기 때문이다.

#include <vector>

int main() {
	std::vector<int> nums(5);
    for (int i = 0; i < 5; i++) {
    	nums[i] = i;
    }
}
#include <iostream>
#include <vector>

int main() {
	std::vector<int> nums{0,1,2,3,4}; // 원하는 값으로 초기화
    std::emplace_back(5);


0개의 댓글