以下是乙個可以模擬任意維陣列的類.大小可以任意指定.
缺點是建立起來比較麻煩,需要乙個維對應的大小的陣列.
我已經修改了好幾次了。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]: " } 先設定乙個陣列 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... 看到題目就會有人想生成任意二維陣列不就是定義乙個二維陣列嗎,你想定義為什麼就是什麼,這不就是任意的二維陣列嗎?但這是你在 中定義了二維陣列,在程式執行以後陣列的空間就不會在變化了,如果想在在程式執行中,想生成乙個其他二維陣列是不可能的事情。原理 聽起來好像很難,其實很簡單,因為二維陣列的本質就是一維... 目錄 假設有下面乙個二維陣列 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...PHP 將任意維數陣列轉為一維陣列
生成任意二維陣列
PHP二維陣列(或任意維陣列)轉換成一維陣列的方法