C 動態陣列的C 簡易實現

2021-10-04 19:32:52 字數 1574 閱讀 6345

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

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

成員函式:

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

在尾部增加一元素;

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

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

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

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

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

#include

#include

using

namespace std;

struct mylist

else}}

;class

myarray

myarray

(int num)

intgetnum()

intgetnownum()

void

addlast

(int data)

;void

modify

(int i,

int data)

;int

i***ist

(int data)

;void

print()

;void

addnum()

;int

find

(int data);~

myarray()

;};myarray::

~myarray()

void myarray::

addlast

(int data)

else

}void myarray::

print()

}void myarray::

addnum()

delete

pointer;

pointer = p;

n =2* n;

}void myarray::

modify

(int i,

int data)

int myarray::

i***ist

(int data)

}return0;

}int myarray::

find

(int data)

sort

(list, list + x)

;int mid, low =

0, high = x;

while

(low <= high)

}return0;

}int

main()

C語言 動態陣列的實現

動態陣列 dynamic array 顧名思義就是能改變大小的陣列。使用動態陣列可以有效的提高記憶體利用率。下面附上動態陣列的c語言實現 標頭檔案 dynamic array.h ifndef dynamic array h define dynamic array h ifdef cpluscpl...

C 動態陣列vector實現

最近在做將matlab 轉化為c c 的工作,在實際應用時,發現動態陣列非常重要,我在學習的時候也踩了許多坑,這篇就當做一篇踩坑筆記,希望讀者能夠繞開我踩過的坑,順利應用動態陣列。其實在c語言中,都是靜態陣列,即需要在定義的時候就定下該陣列的長度,然而這在實際的應用中,很大的一部分情況是我們並不知道...

C語言動態陣列實現

環境 vs2015 1 標頭檔案 dynamicarray.h ifndef dynamicarray h 如果沒有定義 define dynamicarray h 則定義 include include include typedef struct dynamicarray dynamic arr...