思勤无邪

上学时,因我年龄最小,个头也最小,上课时,就像大猩猩堆里的猴一般。如今,这猴偶尔也把最近的一些情况写在这里。

   :: 首页 :: 联系 :: 聚合  :: 管理
  132 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

公告

     吾日常三省吾身,曰思、曰勤、曰无邪。

积分与排名

  • 积分 - 159551
  • 排名 - 142

最新随笔

最新评论

阅读排行榜

评论排行榜

    写了一个二维动态数组的函数模板,可以将它封成类使用。

#include 
<iostream>
#include 
<string>

using namespace std;

// 初始化动态数组
template<class T>
void Init2DArray(T** &p, int rows, int cols)
{
    
for (int x=0; x<rows; ++x)
    
{
        
for (int y=0; y<cols; ++y)
        
{
            p[x][y] 
= T();
        }

    }

}


// 动态创建 2 维数组模板
template<class T>
void Create2DArray(T** &p, int rows, int cols)
{
    
// 创建行指针
    p = new T* [rows];
    
// 为每一行分配空间
    for (int i=0; i<rows; ++i)
    
{
        p[i] 
= new T[cols];
    }

    
// 初始化
    Init2DArray(p, rows, cols);
}


// 删除动态数组
template<class T>
void Delete2DArray(T** &p, int rows)
{
    
// 释放每一行的空间
    for (int i=0; i<rows; ++i)
    
{
        delete[] p[i];
    }

    
// 删除指针
    delete[] p;
    p 
= 0;
}


// 显示动态数组
template<class T>
void Show2DArray(T** &p, int rows, int cols, string arrayName = "p")
{
    
for (int x=0; x<rows; ++x)
    
{
        
for (int y=0; y<cols; ++y)
        
{
            cout 
<< arrayName << "[" << x << "][" << y << "] = " << p[x][y] << " ";
        }

        cout 
<< endl;
    }

}


int main(void)
{
    
// 测试模板函数
    int **pInt;
    
char **pChar;
    
float **pFloat;
    
int rows = 10;
    
int cols = 5;
    Create2DArray(pInt, rows, cols);
    pInt[
2][3= 6;
    pInt[
8][4= 32;
    Show2DArray(pInt, rows, cols, 
"pInt");
    Delete2DArray(pInt, rows);

    Create2DArray(pChar, rows, cols);
    Show2DArray(pChar, rows, cols, 
"pChar");
    Delete2DArray(pChar, rows);

    Create2DArray(pFloat, rows, cols);
    Show2DArray(pFloat, rows, cols, 
"pFloat");
    Delete2DArray(pFloat, rows);

    system(
"pause");
    
return 0;
}

posted on 2006-09-28 09:58 思勤无邪 阅读(720) 评论(1)  编辑 收藏 引用 所属分类: C++

Feedback

# re: 写了一个二维动态数组的函数模板 2010-04-25 12:31 whicter
好有用,博主很牛,非常受用,膜拜。  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理