模擬任意維陣列的類

2021-09-30 01:58:46 字數 1640 閱讀 2750

以下是乙個可以模擬任意維陣列的類.大小可以任意指定.

缺點是建立起來比較麻煩,需要乙個維對應的大小的陣列.

我已經修改了好幾次了。bug我沒怎麼測試過.估計還有的。但是程式就是這個意思.

各位有興趣把它修改的好一些.修改了如果有分享精神的話.也讓nhsoft知道一下.

我的email [email protected]

基本能模擬取位址.operator .任意維大小的分配.

以及智慧型的記憶體分配.(在記憶體裡是連續的.只分配了一次記憶體.)

#include "stdafx.h"

#include

#include

using namespace std;

template class carray

carray(int* dimsize,t* pmem = null)

/*建立

*/void create(int* dimsize,t* pmem = null)

pmem = new t[size];

m_pdata = pmem;

}m_parrays = new carray[*dimsize];

m_dimsize  = *dimsize ;

int d_mem = size / m_dimsize ;

for(int i  = 0; i< m_dimsize ; i++)

t* operator &()

carray& operator(int index)

void free()

protected:

carray* m_parrays;

int              m_dimsize ;

t*               m_pdata;

};template class carray

carray(int* dimsize,t* pmem)

void create(int size,t* pmem)

m_data =pmem;

m_dimsize = size;

}t* operator &()

void create(int* dimsize,t* pmem)

m_data = pmem;

m_dimsize = dimsize[0];

}t& operator(int index)

void free()

public:

t*               m_data;

int              m_dimsize ;

bool             m_bneeddelete;

};int _tmain(int argc, _tchar* ar**);/*

carray 為 4 6 7 7的陣列

*/carrayarray;

array.create(dimsize);

array[2][1][3][1] = 1;

int* pt = &(array[2][1][3]);

cout<<"pt[0] : "*pt2 = 234;

cout<<"array[2][1][0][0]:  "

}

PHP 將任意維數陣列轉為一維陣列

先設定乙個陣列 arr a b c d e f g h i m n 第一種方法 遞迴 function toonearray array else return res arr echo print r toonearray arr 第二種方法 array walk recursice res ar...

生成任意二維陣列

看到題目就會有人想生成任意二維陣列不就是定義乙個二維陣列嗎,你想定義為什麼就是什麼,這不就是任意的二維陣列嗎?但這是你在 中定義了二維陣列,在程式執行以後陣列的空間就不會在變化了,如果想在在程式執行中,想生成乙個其他二維陣列是不可能的事情。原理 聽起來好像很難,其實很簡單,因為二維陣列的本質就是一維...

PHP二維陣列(或任意維陣列)轉換成一維陣列的方法

目錄 假設有下面乙個二維陣列 arr array 0 array id 100,username a1 1 array id 101,username a2 2 array id 102,username a3 3 array id 103,username a4 4 array id 104,us...