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
}如果我们想获得动态分配数组的大小,我们不能轻易获得大小。对于向量,我们可以以常数时间获得大小。
如果我们想使用函数参数发送一个数组,那么我们必须发送另一个大小或长度变量。如果我们发送向量,则不需要传递其他变量。
除非我们使用动态分配的新数组,否则我们不能返回一个数组,但我们可以从函数返回向量。
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP