資料結構中的陣列 動態陣列的建立

2022-08-18 01:21:14 字數 2464 閱讀 8477

1,staticarray 確實可以代替原生陣列使用,但是在建立 staticarray 物件時,陣列大小必須明確指定,能不能建立乙個物件在使用過程中,物件的大小可以動態指定,且功能超越 staticarray;

2,課程目標:

1,本節課完成 dynamicarray 類的建立,;

2,dynamic 指的是陣列的大小可以動態指定;

3,dynamicarray 設計要點:

1,類模板:

1,動態確定內部陣列空間的大小;

2,實現函式返回陣列長度;

3,拷貝構造和賦值操作;

4,動態重置陣列大小;

4,dynamicarray 類的宣告:    

5,dynamicarray 動態陣列的實現:

1

#ifndef dynamicarray_h

2#define dynamicarray_h

34 #include "

array.h

"5 #include "

exception.h"6

7namespace

dtlib826

}27return

ret;28}

2930

void update(t* array, int length) //

o(1)

3139

else

4043}44

45void init(t* array, int length) //

o(1)

4652

else

5356}57

58public

:59 dynamicarray(int length = 0) //

o(1) 動態陣列如果不指定大小,則預設的陣列大小為零;

6068

else

6972

*/73}74

75 dynamicarray(const dynamicarray& obj) //

o(n)

7687}88

else

8992

*/93}94

95 dynamicarray& operator= (const dynamicarray& obj) //

o(n)

96109

t* temp = this->m_array;

110this->m_array = array;

111this->m_length = obj.m_length;

112delete temp;

113}

114else

115118

*/119

}120

121return *this

;122

}123

124void resize( int length ) //

o(n)

125138

t* temp = this->m_array;

139this->m_array = array;

140this->m_length = length;

141delete temp;

142}

143else

144147

*/148

}149

}150

151int length() const

//o(1)

152155

156 ~dynamicarray() //

o(1)

157160

};161

162}

163164

#endif

//dynamicarray_h

6,dynamicarray 類中的函式實現存在重複的邏輯,如何進行**優化(優化見本文 5 中的實現)?

1,init,物件構造時的初始化操作;

2,copy,在堆空間中申請新的記憶體,並執行拷貝操作;

3,update,將指定的堆空間作為內部儲存陣列使用;

7,實現**優化中:

1,重複**抽象為保護成員函式;

2,提供功能用於實現公有函式功能;

8,小結:

1,staticarray 通過封裝原生陣列的方式實現陣列類;

2,dynamicarray 動態申請堆空間,使得陣列長度動態可變;

3,陣列物件能夠代替原生陣列,並且使用上更安全;

4,**優化是專案開發過程中不可或缺的環節:

1,每乙個函式足夠小;

2,每乙個函式只做一件事;

資料結構中的陣列 靜態陣列類的建立

1,順序儲存線性表兩個問題 1,當做陣列誤用 2,效率有隱患 2,本文解決第乙個功能上的問題,建立乙個陣列類代替順序儲存結構中的陣列訪問操作符 1,完成 array 類的具體實現 2,完成 staticarray 類的具體實現,替代原生陣列 4,需求分析 1,建立陣列類代替原生陣列的使用 1,陣列類...

資料結構 動態陣列

int a newint 2 3 定義乙個兩行雜湊的陣列 靜態陣列 int b newint 2 定義行數,列數可變 陣列的儲存 int a newint 10 一維陣列 int a newint 2 3 二維陣列 int a newint 2 3,4 三維陣列 陣列儲存的特點靜態陣列 int a ...

搞懂資料結構 動態陣列

什麼是陣列 陣列是一種順序儲存的線性表,所有元素的儲存的記憶體位址都是連續的。動態陣列 在很多程式語言中,陣列建立後是容量是固定的,但是實際開發中,我們更希望能動態的改變陣列的容量 介面設計 int size 元素的數量 boolean isempty 是否為空 boolean contains i...