動態順序連結串列呼叫完後的析構
阿新 • • 發佈:2018-12-03
1.建立動態順尋連結串列
2.在動態順連結串列中通過建構函式設定三個成員變數_array(陣列),_capacity(容量),_size(大小)
class SeqList {
public:
SeqList(size_t capacity = 10)
{
_array = (DataType*)malloc(sizeof(DataType)*capacity);
if (nullptr== _array)
{
assert(0);
}
_capacity = capacity;
_size = 0;
}
}
3.在類共有人員中設定初始化函式 void SeqListPushBack,為了防止函式capacity申請的空間滿了,在設定一個尾刪函式
void SeqListPopBack
void PushBack(const DataType &data)
{
_array[_size++] = data;
}
void PopBack(size_t size)
{
size--;
}
程式程式碼完整如下:
#includeiostream> #include<assert.h> typedef int DataType; class SeqList { public: SeqList(size_t capacity = 10) { _array = (DataType*)malloc(sizeof(DataType)*capacity); if (nullptr== _array) { assert(0); } _capacity = capacity; _size = 0; } void PushBack(const DataType &data) { _array[_size++] = data; } void PopBack(size_t size) { size--; } void SetPrintf() { for (size_t i = 0;i < _size;i++) { cout << _array[i] << endl; } } ~SeqList() { free(_array); _capacity = 0; _size = 0; } private: DataType* _array; size_t _capacity; size_t _size; }; void TestFunc() { SeqList s; s.PushBack(1); s.PushBack(2); s.PushBack(3); s.PushBack(4); s.SetPrintf(); } int main() { TestFunc(); system("pause"); return 0; }
注*_array=(DataType)malloc(sizeof(DataType)*capacity)申請需要通過free釋放
~SeqList(){...}形參傳遞給建構函式以後,通過SeqListPushBack函式尾插函式,生命週期完以後通過~SeqList()
{...}清理成員變數的賦值。