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; }
数组大小是固定的。创建数组后,无法更改其大小。向量的尺寸是动态的。如果添加新元素,如果空间不足,它会为其创建新的空间,以及一些额外的空间。
如果数组是动态分配的,则必须手动释放它。但在向量中,我们不需要手动释放它,它会自动释放。
示例
#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 }
如果我们想获得动态分配数组的大小,我们不能轻易获得大小。对于向量,我们可以以常数时间获得大小。
如果我们想使用函数参数发送一个数组,那么我们必须发送另一个大小或长度变量。如果我们发送向量,则不需要传递其他变量。
除非我们使用动态分配的新数组,否则我们不能返回一个数组,但我们可以从函数返回向量。
广告