定義一元素為整數的動態陣列類,並在主函式中呼叫各個功能:資料成員:指向元素首位址的指標(用於儲存動態申請的陣列空間)、當前陣列的容量、當前元素的個數;
成員函式:
帶參/無參建構函式(無參的動態申請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公尺.請判斷走不同的距離去辦事,是騎車快還是走...