開闢簡單動態陣列

2021-07-25 13:12:09 字數 938 閱讀 3817

在做題時多次想用到動態陣列,但不知如何定義,看了stl關於記憶體「動態分配、摧毀、再分配」的思想後,

寫下簡單開闢動態陣列的源**送給新手。

#includetemplateclass array

void add(t value) //向陣列中新增資料

else //實際長度大於預設長度

deletem_pdate; //釋放原始空間

m_ntotalsize *= 2; //原始資料空間重新分配,擴大為兩倍

m_pdate = new t[m_ntotalsize];

for (int i = 0; i < m_nvalidsize; i++) //傳回備份資料

deletetmpdate; //清除備份空間,再進行正常賦值

m_pdate[m_nvalidsize] = value; //賦值

m_nvalidsize++; //有效長度+1

} }int getsize() //返回陣列有效長度

t get(int pos) //返回某一位置的元素

virtual~array() }

};

這樣定義後期可能會開闢出大量的空間浪費掉,所以stl容器對空間的浪費還是比較大的。但stl專家編制的**肯定比我這個專業,效率高的多。我覺得預設長度和長度
不夠時應該乘的倍數可以好好研究,甚至可以變成乙個數模問題**。

動態開闢二維陣列

近日寫到乙個程式,用到了要動態開闢二維陣列,一想,自己就會兩種。一者 用new在堆上開闢 二者 用vector開闢。技巧沒有多少,但是確實是折騰了我半天!首先,大家去網上搜一下,動態開闢二維陣列的文章特別多,再加上我這篇就更多了,我本不想寫這篇博文的。但看了網上各位 大蝦 大牛 寫的,覺得還是有必要...

C 動態開闢

c 中的動態記憶體開闢 和名字空間作用域 一.c 中的動態記憶體開闢 c語言中我們用malloc來動態開闢空間 int p int malloc sizeof int 釋放用free free p 在c 中動態開闢使用new int p new int 釋放空間使用delete delete p 我...

C 簡單動態記憶體開闢(1)!!

malloc函式 在c語言標準庫裡面提供了函式malloc,這個函式是想記憶體池裡面申請記憶體 位元組為單位 當乙個程式另外需要一些記憶體的時候就可以呼叫malloc函式來獲取一塊適合的記憶體,當使用者呼叫成功時,函式會返回乙個記憶體的位址。注意 這裡申請成功的記憶體並沒有初始化,裡面存的是一些隨機...