Dynamic in nature. The size automatically changes as elements are added or removed.
Fixed in size. Once the array is initialized with values and is allocated a space in the memory you cannot change its size unless it is a dynamic array.
Occupies a lot of memory, due to being dynamic in nature. A typical vector implementation grows by doubling its allocated space rather than incrementing it by 1. Reallocating memory is usually an expensive operation in vectors.
A memory efficient data structure where each element in an array occupies a single space. The array only uses its allocated space once it is initialized, after which it does not need to change its size due to it being non-dynamic.
Syntax to initialize a vector of integers in C++ is:
vector<int> vec;
You add elements in the vector gradually by using the push_back(n) function.
Syntax to initialize a basic array of integers in C++ is:
int arr[4] = [3, 6, 1, 8];
Better suited if one needs to add or remove elements from a list frequently.
Better suited for frequent access of elements irrespective of their position. This is due to their contiguous property and index-based structure.
Vector is a template class in C++, that is, a vector template class needs to be shipped from the C++ library in order to use the vector functions.
Basic lower level data structure which does not need to be shipped from a template class.