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 |