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 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告