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