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
}
  • 如果我们想获得动态分配数组的大小,我们不能轻易获得大小。对于向量,我们可以以常数时间获得大小。

  • 如果我们想使用函数参数发送一个数组,那么我们必须发送另一个大小或长度变量。如果我们发送向量,则不需要传递其他变量。

  • 除非我们使用动态分配的新数组,否则我们不能返回一个数组,但我们可以从函数返回向量。

更新于:2019年8月20日

330 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告