關於定義陣列,我們都知道,當我們定義完乙個陣列,該陣列的成員數就已經固定了,即陣列是靜態分配記憶體的,一旦分配完記憶體大小,便不可改變。
例如,定義乙個成員數為n的整型陣列
則這個n應該表示的是常量,而不是變數
int nums[n]
;//在寫出該語句後,nums陣列的成員數就已經不可變了
更形象一些,假設我們需要自定義陣列的成員數,我們可能會這麼做。
#include
using
namespace std;
intmain
(void
)
但嘗試進行編譯時,會發現編譯器提示在int nums[n];語句的所在行報錯了,原因便是之前說明的,定義陣列成員數接收的引數必須是常量。
而容器則可以改變這一切,它分配記憶體的方式是動態分配的。它相比於常規陣列,明顯的優點是能實現自定義陣列的操作。
例如,用它的方式可以實現上述的**。需要注意的是,使用它需要用到vector標頭檔案,所以加上就好了。
#include
#include
using
namespace std;
intmain
(void
)return0;
}
以我自己的例子,在暑假的時候,不知道如何自定義陣列成員數大小,但為了實現掃雷遊戲的難度設定(即布置地圖的格仔與雷的個數,布置地圖需要用到陣列操作),而陣列成員數的設定又不能接受變數,只能每個自定義函式都需要重複寫幾遍,這樣的話就異常繁瑣且稍有不慎就會出差錯。而學習了容器之後,可以實現自定義陣列成員數就完全可以避免這樣繁瑣的操作了。
當然,容器也有它的缺點,即它的效率比陣列要低,所以,如果沒有動態分配記憶體的必要,用常規陣列的方式操作依然是不二之選。
陣列與容器
通過下面的一道題,來分析陣列與容器的一些不同之處 題 編寫必要的 將乙個陣列賦給另乙個陣列,然後把這段 改用 vector 實現。考慮如何將乙個 vector 賦給另乙個 vector。解答 一 陣列 include using namespace std int main int b array ...
陣列與容器
通過下面的一道題,來分析陣列與容器的一些不同之處 題 編寫必要的 將乙個陣列賦給另乙個陣列,然後把這段 改用 vector 實現。考慮如何將乙個 vector 賦給另乙個 vector。解答 一 陣列 include using namespace std int main int b array ...
容器與陣列
陣列 array 容器 vector 陣列與容器最大的區別是宣告時陣列的大小固定且保持不變,vector是序列容器,可改變大小的陣列。接下來,分別詳細分析陣列與容器的不同 宣告 array是乙個包裝固定大小陣列的容器,因此宣告時必須確定其大小 arrayarray name 例 arrayn vec...