成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++二維數組初始化相關應用技巧分享

開發 后端
C++二維數組初始化能不能使用變量開進行呢?首先讓我們一起來閱讀本文,并從中找到一個正確的答案,幫助我們解決相關問題。

C++編程語言中,對于數組的操作是一個非常基礎而又重要的應用技術。我們在這篇文章中會為大家詳細介紹C++二維數組初始化的相關操作方法,方便大家對這方面的應用技術有所掌握。C++的二維數組是不能用變量初始化的,像下面的代碼肯定是編譯不通過的:

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

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

  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("數組第二維數越界");  
  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();  

用一個模板類實現這個功能,是C++二維數組初始化中一個不錯的選擇,但在實際中,是很少有人這樣寫的,這是在more effective C++給出的方法,目的是為了說明proxy模式,Array1D是作為一個proxy類存在的。

【編輯推薦】

  1. C++模擬event關鍵字具體實現方案
  2. C++ void使用規則總結概覽
  3. C++ void基礎概念講述
  4. C++單向鏈表實現代碼解讀
  5. C++函數對象與函數指針不同之處
責任編輯:曹凱 來源: 博客園
相關推薦

2009-09-18 11:33:37

C#二維數組初始化

2010-07-19 13:17:12

Perl二維數組

2010-02-04 16:26:54

C++二維數組new

2010-02-05 13:44:06

C++ eof()函數

2009-08-28 11:24:48

C#一維數組初始化

2010-01-22 13:16:05

VB.NET初始化數組

2023-11-12 23:08:17

C++初始化

2010-02-03 11:01:18

C++類靜態成員初始化

2010-02-01 11:13:00

C++ Traits

2009-08-28 11:09:35

C#數組初始化

2009-09-18 11:15:52

C#數組初始化

2010-01-05 15:35:21

.NET Framew

2010-02-05 17:25:26

C++標識符命名規則

2010-02-04 14:58:06

C++內存分配

2010-02-06 13:47:08

C++標準擴展

2009-09-17 16:06:22

C#數組初始化

2009-09-02 16:52:55

C#數組初始化

2009-08-07 10:12:09

C#二維數組

2010-01-14 17:58:41

C++語言

2010-02-01 14:21:24

C++初始化列表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 96国产精品久久久久aⅴ四区 | 一区二区电影 | 国产91丝袜在线18 | 国产精品波多野结衣 | 久久久久久亚洲欧洲 | www.日韩| 亚洲视频在线观看 | 毛片a级 | 午夜影视 | 久久电影一区 | 国产精品久久久久久吹潮 | 免费成人在线网站 | 99热最新网址 | 成人免费视频网站 | 欧美精品在线免费 | 一区中文字幕 | 国产在线观看 | 超碰精品在线观看 | 日本黄色的视频 | 中文字幕一区在线 | 91在线看视频 | 天天影视色综合 | 精品熟人一区二区三区四区 | 亚洲成网 | 亚洲播放一区 | 亚洲欧美国产精品一区二区 | 一区二区三区久久久 | 天天天操| 伊人91在线 | 成人毛片一区二区三区 | 精品国产一级 | 成人乱人乱一区二区三区软件 | 日韩一区二区三区四区五区 | 久久久www成人免费精品 | 日韩一区二区不卡 | 97天天干| 在线播放第一页 | 91在线看 | 久久久久国产精品一区二区 | 午夜精品久久久 | 日本不卡免费新一二三区 |