본문 바로가기

STL

int array와 vector의 차이

1. 길이의 고정 여부

 

배열의 경우, 정의와 동시에 길이를 지정하며 고정되어있다.

/* 정적 할당하는 경우 */
int array[3] = {0};		// 3이라는 크기를 지정했다

/* 동적 할당하는 경우 */
int array[] = new int[5];	// 마찬가지로 크기를 정해주어야한다

벡터의 경우, 사용자가 계속해서 원소를 추가하거나, 삭제하여 길이를 조절할 수 있다.

vector<int> myvector(2);	// 크기를 할당할 수 있다

myvector.push_back(1);
myvector.push_front(2);

myvector.push_back(5);		// 크기는 이제 3으로 늘어났다

 

2. 중간 값 삭제 시

 

배열의 경우, 값을 삭제하더라도 해당 인덱스의 공간은 빈 공간으로 남아있다.

벡터의 경우, 값을 삭제하면 해당 원소 뒤의 모든 원소들이 앞으로 땡겨지므로, 빈 공간은 없다. (시간이 오래 걸린다) 

'STL' 카테고리의 다른 글

Stack과 Queue의 차이  (0) 2020.02.16
데이터를 찾을 때 hash와 array 어떤게 더 빠를까  (0) 2020.02.15
hash를 사용하는 경우  (0) 2020.02.15
list와 vector의 차이  (0) 2020.01.24
int array와 list의 차이  (0) 2020.01.24