CArrary SetSize及陣列一些使用發現

2021-10-03 05:31:16 字數 918 閱讀 8458

carray 使用不當會產生記憶體碎片,應先呼叫setsize(),但具體怎麼用還不是太清楚,先看**:

執行結果:

1, 0x2bcf58, 0x2bcf98,  2

2, 0x2b9e78, 0x2b9e78,  2

3, 0x2b9ec0, 0x2b9ec0, 80

從以上結果看出,第一種方法未用setsize是錯的,執行arr1.add( 2 )時會重新給第一項分配記憶體,記憶體位址變了(0x2bcf58, 0x2bcf98),第

二、三種方法正確,新增元素時,不重新分配記憶體,記憶體位址不變。

1.setsize(int_ptr nnewsize, int_ptr ngrowby)並不預分配記憶體,在第一次執行add或insertat時分配ngrowby記憶體,用完時再分配ngrowby記憶體。

2. removeall將銷毀已經分配的記憶體,下次呼叫add時再分配。如果頻繁清除時請使用removeat,不會重新分配記憶體。

3.setsize(100,100)之後直接用add就會從101開始存,除非用removeall之後再用add,或者用setat

4.動態實現二維陣列

//carray m_arrayrecordspeed1[10];

//for(int i=0;i<10;i++)

// //for(int i=0;i<10;i++)

// //for(int i=0;i<10;i++)

// //for(int i=0;i<10;i++)

//

mysql三大正規化及資料約束及查詢及儲存過程

資料約束 連線查詢 多表查詢 儲存過程 引數型別 會話變數 變數只在當前連線會中有效 區域性變數 帶有輸入輸出引數的儲存過程 帶有判斷條件的儲存過程 帶有迴圈條件的儲存過程 接收表中的資料的儲存過程 觸發器create table student id int,name varchar 20 gen...

xml及DTD的解析及運用

9月18日 xml的認識 xml是一種標記語言。標記指計算機所能理解的資訊符號,通過此標記,計算機之間可以處理包含各種資訊的文章等,xml用來傳送及攜帶資料資訊,不用來表現或展示資料,html 語言則是用來表示資料,所以 xml用途的焦點是它說明資料是什麼,以及攜帶資料資訊。xml定義結構,儲存資訊...

預設樣式重置及及display轉換

body,p,h1,h2,h3,h4,h5,h6,dl,dd ol,ul aimg 注意 一般先清除預設樣式 display 塊元素 內嵌元素 inline block 塊元素 eg,block 1 預設獨佔一行 2 沒有寬度時,預設撐滿一排 3 支援所有css命令 內嵌元素eg,inline 1 ...