日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C++二維數(shù)組初始化相關(guān)應(yīng)用技巧分享

在C++編程語(yǔ)言中,對(duì)于數(shù)組的操作是一個(gè)非?;A(chǔ)而又重要的應(yīng)用技術(shù)。我們?cè)谶@篇文章中會(huì)為大家詳細(xì)介紹C++二維數(shù)組初始化的相關(guān)操作方法,方便大家對(duì)這方面的應(yīng)用技術(shù)有所掌握。C++的二維數(shù)組是不能用變量初始化的,像下面的代碼肯定是編譯不通過(guò)的:

 
 
 
  1. int i=5;  
  2. int j=4;  
  3. int a[i][j]; 

像這樣的代碼肯定是很多C++像我一樣的初學(xué)者的困感,如果數(shù)組是在編譯的階段確定其內(nèi)存位置的,而變量不能作為數(shù)組的維數(shù).下面,用一個(gè)模板類,完成這種C++二維數(shù)組初始化的功能 

 
 
 
  1. template< class T> 
  2. class Array2D{  
  3. private:  
  4. T* pData;  
  5. int dim1;  
  6. int dim2;  
  7. int dim1Index;  
  8. class Array1D{  
  9. private:  
  10. int length;  
  11. T* start;  
  12. public:  
  13. Array1D(T* start,int length):length(length),start(start){}  
  14. T& operator[](int index){  
  15. if(index>length){  
  16. throw out_of_range("數(shù)組第二維數(shù)越界");  
  17. }else{  
  18. return *(start+index);  
  19. }  
  20. }  
  21. };  
  22. public:  
  23. Array2D(int dim1,int dim2){  
  24. this->dim1dim1=dim1;  
  25. this->dim2dim2=dim2;  
  26. int size=dim1*dim2;  
  27. pData=new T[size];  
  28. }  
  29. Array1D operator[](int index){  
  30. return Array1D(pData+index*dim1,dim2);  
  31. }  
  32. void print(){  
  33. for(int i=0;i< dim1;i++){  
  34. for(int j=0;j< dim2;j++){  
  35. cout< < *(pData+dim1*i+j)< < " ";  
  36. }  
  37. cout< < endl;  
  38. }  
  39. }  
  40. };  
  41. int main(){  
  42. int index1=2;  
  43. int index2=2;  
  44. Array2D< int> test(index1,index2);  
  45. test[0][0]=1;  
  46. test[0][1]=2;  
  47. test[1][0]=3;  
  48. test[1][1]=4;  
  49. test.print();  

用一個(gè)模板類實(shí)現(xiàn)這個(gè)功能,是C++二維數(shù)組初始化中一個(gè)不錯(cuò)的選擇,但在實(shí)際中,是很少有人這樣寫的,這是在more effective C++給出的方法,目的是為了說(shuō)明proxy模式,Array1D是作為一個(gè)proxy類存在的。

【編輯推薦】

  1. C++模擬event關(guān)鍵字具體實(shí)現(xiàn)方案
  2. C++ void使用規(guī)則總結(jié)概覽
  3. C++ void基礎(chǔ)概念講述
  4. C++單向鏈表實(shí)現(xiàn)代碼解讀
  5. C++函數(shù)對(duì)象與函數(shù)指針不同之處

本文標(biāo)題:C++二維數(shù)組初始化相關(guān)應(yīng)用技巧分享
標(biāo)題來(lái)源:http://m.5511xx.com/article/coogioi.html