陣列與動態陣列

2021-10-03 03:30:52 字數 2675 閱讀 3761

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。要求統計出每個數在陣列中是第幾次出現的。當然了,如果是陣列計數的話是百分百爆空間的,我們...

語言的動態陣列與靜態陣列

近來編寫幾個程式,很多都用到了陣列。但是對於陣列的大小卻是沒有固定的,也就是說可以更改陣列大小,其大小是可以變化的。並不像初學時的那樣,告訴你乙個範圍,你就必須取最大值以滿足要求。那樣可能就會浪費很多不必要的記憶體單元!那麼到底應該怎樣定義乙個動態陣列列?在陣列一章中,曾介紹過陣列的長度是預先定義好...