11/30c++數組與vector的區別填坑

  首先,問題由vector和數組的數據引用格式類似引出。由array[i],vector[i]產生疑問,數組和vector的賦值方式類似嗎?是不是有別的共同點呢?最後結論:除了各自的引用有一種恰巧外形類似,別的方面基本沒有共同點。詳細資料如下:

  簡要回顧一下array數組和vector(姑且稱之向量)的部分基礎:

  一、Array與Vector

  1.Array

  Array,是一種內置類型,存放在由系統“棧”中,由系統執行對應內存的分配與釋放。

  Array的類型:int[維度]。array的類型不是簡單的類型標識符,而是類型+[維度]組合而成的特殊類型。

  Array的引用:array[i],i表示希望引用的數據在數組中對應的位置,由0開始查詢。

  Array的初始化:從概念上講,Array使用前必須指定其類型與大小,初始化時形式上可以不指定,但本質上是由系統計算並使用對應類型的初值填充。如:int[] = {1};int[2] = {1}; 

  訪問Array數組元素:a[],括號內維度不可越界。

 

2.vector

  vector,是一種類模板,存放在“堆”找那個,由標準模板庫中的程序負責內存的分配和釋放,操作簡單。

  vector的類型:爲定義時vector <>中<>內的類型,vertor的大小可以變化。

  vector的大小:可以通過push_back或者pop對vector的大小進行變化。

  vector的初始化:①默認初始化,vector<int> ilist1,size和capacity都爲0,需要之後使用時添加。

②拷貝賦值初始化:vector<int> ilist2(ilist);  vector<int> ilist2  = ilist; 首先ilist與ilist2的類型需要一致,賦值完成時ilist2將具有與ilist一樣的容量與元素。

③列表賦值法vector<int> ilist = {1,2,3.0,4,5,6,7}; vector<int> ilist {1,2,3.0,4,5,6,7}; 需要注意花括號中的值類型是否與尖括號中的類型保持一致。

④默認值初始化,vector<int> ilist(7,3); 意爲名爲ilist的vector被初始化成功,並擁有了七個類型爲int值爲3的元素。

 

3.數組與vector的區別

  ①內存的存放位置及分配與釋放區別

  ②大小是否固定

③初始化方式

④執行效率。因爲vector在拓寬內存時需要消耗大量companity

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章