C ++中的數組和向量之間有什么區別?差異的一個示例可能包括庫,符號,能力等。數組數組包含特定數量的特定類型的元素。為了使編譯器可以在編譯程序時保留所需的空間量,必須指定定義數組時數組將包含的元素類型和數量。編譯程序時,編譯器必須能夠確定該值。定義數組后,可以使用數組的標識符以及索引來訪問數組的特定元素。數組是零索引的;也就是說,第一個元素在索引0處。此索引方案指示C ++中指針與數組之間的緊密關系以及該語言為指針算術定義的規則。— C ++ Pocket參考向量向量是動態大小的對象序列,提供了數組樣式的operator[]隨機訪問。成員函數push_back通過copy構造函數復制其參數,將該副本添加為向量中的最后一項,并將其大小加1。pop_back通過刪除最后一個元素實現完全相反的操作。從向量末尾插入或刪除項目需要攤銷固定時間,而從任何其他位置插入或刪除項目則需要線性時間。這些是向量的基礎。他們還有很多。在大多數情況下,向量應是C樣式數組的首選。首先,它們是動態調整大小的,這意味著它們可以根據需要增長。您不必為了C數組的情況而進行各種研究來找出最佳的靜態大小。向量會根據需要增長,并且可以根據需要手動調整大小。其次,向量使用at成員函數提供邊界檢查(但不能使用operator[]),這樣您就可以在引用不存在的索引時做些事情,而不是僅僅看著程序崩潰或更糟糕的情況,繼續使用損壞的數據執行?!?C ++食譜
3 回答

largeQ
TA貢獻2039條經驗 獲得超8個贊
我要補充一點,數組是C ++中非常底層的結構,在“學習繩索”時,您應該盡量遠離它們-甚至Bjarne Stroustrup也建議這樣做(他是C ++的設計師)。
向量非常接近與數組相同的性能,但是具有許多便利和安全功能。當與處理原始數組的API接口或構建自己的集合時,您可能會開始使用數組。

慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
簡而言之,向量的長度是動態的,而數組的大小是固定的。使用數組時,可以在聲明時指定其大?。?/p>
int myArray[100];
myArray[0]=1;
myArray[1]=2;
myArray[2]=3;
對于矢量,只需聲明它并添加元素
vector<int> myVector;
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
...
有時您將不知道所需的元素數量,因此矢量對于這種情況是理想的。
添加回答
舉報
0/150
提交
取消