int
main()
;// other element will be set as the default value
// 2. get length
int size =
sizeof
(a1)
/sizeof
(*a1)
; cout <<
"the size of a1 is: "
<< size << endl;
// 3. access element
cout <<
"the first element is: "
<< a1[0]
<< endl;
// 4. iterate all elements
cout <<
"[version 1] the contents of a1 are:"
;for
(int i =
0; i < size;
++i)
cout << endl;
cout <<
"[version 2] the contents of a1 are:"
;for
(int
& item: a1)
cout << endl;
// 5. modify element
a1[0]
=4;// 6. sort
sort
(a1, a1 + size)
;}
大多數程式語言都提供內建的動態陣列,它仍然是乙個隨機訪問的列表資料結構,但大小是可變的。例如,在 c++ 中的vector
int
main()
; vector<
int>
v4(a,*(
&a +1)
);// 3. get length
cout <<
"the size of v4 is: "
<< v4.
size()
<< endl;
// 4. access element
cout <<
"the first element in v4 is: "
<< v4[0]
<< endl;
// 5. iterate the vector
cout <<
"[version 1] the contents of v4 are:"
;for
(int i =
0; i < v4.
size()
;++i)
cout << endl;
cout <<
"[version 2] the contents of v4 are:"
;for
(int
& item : v4)
cout << endl;
cout <<
"[version 3] the contents of v4 are:"
;for
(auto item = v4.
begin()
; item != v4.
end();
++item)
cout << endl;
// 6. modify element
v4[0]
=5;// 7. sort
sort
(v4.
begin()
, v4.
end())
;// 8. add new element at the end of the vector
v4.push_back(-
1);// 9. delete the last element
v4.pop_back()
;}
可以用max_element()及min_element()函式,二者返回的都是迭代器或指標。
標頭檔案:#include
1)vector容器
例 vector vec
最大值:int maxvalue = *max_element(v.begin(),v.end());
最小值:int minvalue = *min_element(v.begin(),v.end());
2)普通陣列
例 a=;
最大值:int maxvalue = *max_element(a,a+6);
最小值:int minvalue = *min_element(a,a+6);
1)vector容器
例 vector vec
最大值下標:int maxposition = max_element(v.begin(),v.end()) - v.begin();
最小值下標:int minposition = min_element(v.begin(),v.end()) - v.begin();
2)普通陣列
例 a=;
最大值下標:int maxposition = max_element(a,a+6) - a;
最小值下標:int minposition = min_element(a,a+6) - a;
陣列與動態陣列的區別
眾所周知,陣列的長度是不可變的,那麼為什麼動態陣列長度可隨意更改呢?這個要從記憶體中的資料模型開始講了 陣列每乙個元素型別都是統一的,且連續不間斷的。如果將記憶體想象成乙個賓館,你在預定賓館時,同行只有4個人,讓賓館服務員尋找了個4個連續的包間,且已經入住。因為賓館可能會有客人預定包間。當你再次有朋...
hash與動態陣列
2017.5.3中午,lkb大犇傳授了xd們兩個新的資料結構 雜湊表 動態陣列 雜湊表是一種資料結構 棧 佇列也是資料結構 我們通常會將它用在儲存方面,如 有n n 10 6 個數的陣列a,a1 an 10 9。要求統計出每個數在陣列中是第幾次出現的。當然了,如果是陣列計數的話是百分百爆空間的,我們...
語言的動態陣列與靜態陣列
近來編寫幾個程式,很多都用到了陣列。但是對於陣列的大小卻是沒有固定的,也就是說可以更改陣列大小,其大小是可以變化的。並不像初學時的那樣,告訴你乙個範圍,你就必須取最大值以滿足要求。那樣可能就會浪費很多不必要的記憶體單元!那麼到底應該怎樣定義乙個動態陣列列?在陣列一章中,曾介紹過陣列的長度是預先定義好...