向量在C ++中优于数组的优势
在这里,我们将看到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 }
如果要获取动态分配数组的大小,则无法轻松获取大小。对于向量,我们可以在恒定时间内获得大小。
如果要使用函数参数发送一个数组,则必须发送另一个变量以获取大小或长度。如果发送向量,则不需要传递其他变量。
除非使用动态分配的新数组,否则不能返回一个数组,但是可以从函数返回向量。