動態陣列類 例

2021-10-04 13:38:14 字數 1828 閱讀 3494

定義一元素為整數的動態陣列類,並在主函式中呼叫各個功能:

資料成員:指向元素首位址的指標(用於儲存動態申請的陣列空間)、當前陣列的容量、當前元素的個數;

成員函式:

帶參/無參建構函式(無參的動態申請10個元素空間並改變當前陣列的容量、當前元素的個數值;帶參的按引數處理);

在尾部增加一元素;

修改指定位置上的元素值;

查詢指定資料的元素是否存在;

輸出所有陣列中的元素; 增加陣列容量(動態申請新容量陣列空間、將原來陣列空間中的元素複製到新空間並修改當前陣列的容量值,釋放delete原來陣列空間);

析構函式(釋放動態申請的陣列空間);

二分查詢指定資料的元素並返回原始所處的位置(選作,首先在函式內定義乙個結構體陣列,臨時存放當前元素值和位置。其次,使用sort函式對結構體陣列排序,最後,利用二分(折半)查詢方法找指定元素是否存在。存在,返回原始位置值。否則,返回-1。返回前釋放結構體陣列的空間)。

#include

#include

using

namespace std;

struct intx

*w;bool

cmp(intx x,intx y)

class

intnum

intnum

(int nn)

void

add(

int data)

;intxg(

int k,

int data)

;int

search

(int data)

;void

show()

;void

isort()

;int

find

(int data)

;void

print()

;~intnum()

void

intadd()

;};void intnum::

show()

void intnum::

add(

int data)

else

}int intnum::xg(

int k,

int data)

else

}int intnum::

search

(int data)

if(i>=m)

return1;

}void intnum::

print()

cout<}void intnum::

intadd()

delete

a;a=p;

n=n+10;

}void intnum::

isort()

sort

(w,w+m,cmp)

;for

(int i=

0;iint intnum::

find

(int data)

else

if(data>w[mid]

.idata)

else}}

intmain()

else

if(q.

search(8

))else

if(q.xg(

1,7)

)else

q.intadd()

; q.

show()

; q.

isort()

; cout

)

}

動態陣列 allocator 類

12.2 動態陣列 12.2.1 new 和陣列 1.分配乙個動態陣列即是在分配乙個new物件時在型別名之後加一對方括號,用來存放陣列大小,該數可以是任意表示式 也可以是0,只需是整形 無需是常量。陣列分配成功後返回乙個指向第乙個物件的指標。2.該分配的動態陣列並非是陣列型別,也就不能呼叫陣列的be...

動態陣列類的封裝

標頭檔案 ifndef myarray h define myarray h include using namespace std class array void array free bool array invalidateindex int nindex 引數berase為true時,重繪...

動態陣列類 騎車與走路

在北大校園裡,沒有自行車,上課辦事會很不方便.但實際上,並非去辦任何事情都是騎車快,因為騎車總要找車 開鎖 停車 鎖車等,這要耽誤一些時間.假設找到自行車,開鎖並車上自行車的時間為27秒 停車鎖車的時間為23秒 步行每秒行走1.2公尺,騎車每秒行走3.0公尺.請判斷走不同的距離去辦事,是騎車快還是走...