여기에서 우리는 C++에서 배열보다 벡터의 장점과 단점을 볼 것입니다.
-
벡터는 템플릿 클래스입니다. 이것은 C++ 전용 구문입니다. 배열은 기본 제공 언어 구조입니다. 배열은 다른 언어로 제공됩니다.
-
벡터는 목록 인터페이스를 사용하여 동적 배열로 구현되며 배열은 기본 데이터 유형을 사용하여 정적 또는 동적 방식을 사용하여 구현할 수 있습니다.
예시
#include<iostream> #include<vector> using namespace std; int main() { int array[10]; //statically allocated array int* arr = new int[10]; //dynamically allocated array vector<int> vec; }
-
배열 크기는 고정되어 있습니다. 하나의 배열이 생성되면 크기를 변경할 수 없습니다. 벡터의 크기는 동적입니다. 새 요소를 추가하면 장소를 사용할 수 없는 경우 새 공간을 만들고 일부 추가 공간을 만듭니다.
-
배열이 동적으로 할당되면 수동으로 할당을 해제해야 합니다. 그러나 vector에서는 할당을 해제할 필요가 없으며 자동으로 할당이 해제됩니다.
예시
#include<iostream> #include<vector> using namespace std; int main() { int* arr = new int[10]; //dynamically allocated array delete(arr); //deallocate manually vector<int> vec; //will be deallocated when variable is out of scope }
-
동적으로 할당된 배열의 크기를 얻으려면 크기를 쉽게 얻을 수 없습니다. 벡터의 경우 일정한 시간에 크기를 얻을 수 있습니다.
-
함수 매개변수를 사용하여 하나의 배열을 보내려면 크기나 길이에 대해 다른 변수를 보내야 합니다. 벡터를 보내면 다른 변수를 전달할 필요가 없습니다.
-
동적으로 할당된 새 배열을 사용하지 않으면 하나의 배열을 반환할 수 없지만 함수에서 벡터를 반환할 수 있습니다.