C++二维数组赋值

定义了一个类template<typenameT>classblock{intM;intN;T**arr;}本意是想定义一个大小可控制的二维数组arr[M][N],如何利... 定义了一个类 template<typename T>
class block{

int M;
int N;
T **arr;
}
本意是想定义一个大小可控制的二维数组arr[M][N],如何利用构造函数对这个数组进行赋值呢?或者有其他可以通过类定义任意大小的二维数组的方法么,请教。。。。
展开
 我来答
伯赐邝弘厚
2019-01-29 · TA获得超过1088个赞
知道小有建树答主
回答量:1600
采纳率:100%
帮助的人:7.5万
展开全部
你好:
1、你可以建立双层循环,来进行赋值。2、你可以将数组首地址给一个指针,然后一个单循环赋值,循环次数是你所有数值的个数,记得指针自加。
祝你好运!
百度网友6fe74e2
2013-04-18 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:262万
展开全部
动态分配内存
template<typename T> block::block(int m,int n)
{
int i;
M=m;
N=n;
arr=new T*[m];
for(i=0;i<m;i++)
arr[i]=new T[n];
}
生成对象时,直接传入M,N的值就行了。
更多追问追答
追问
我的目的是想将主函数中的一个已赋值的二维数组传给**arr,不仅仅是确定二维数组的大小啊,构造函数不应该是三个变量    block::block(int m,int n, T array[][])或怎样的么
追答
哦,你想构造同时给生成的二维数组元素赋值是吧?
template block::block(int m,int n,T **ar)
{
int i,j;
M=m;
N=n;
arr=new T*[m];
for(i=0;i<m;i++)
arr[i]=new T[n];
for(i=0;i<M;i++)
for(j=0;j<N;j++)
arr[i][j]=ar[i][j]; //直接赋值就行了。当然你的ar类型要匹配好。
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a03fc8f
2013-04-18
知道答主
回答量:26
采纳率:0%
帮助的人:8.1万
展开全部
你用for语句循环赋值 或者逐个赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nyhujx
2013-04-18 · TA获得超过147个赞
知道小有建树答主
回答量:68
采纳率:0%
帮助的人:67.4万
展开全部
我给你发个链接,这里边说的很清楚http://www.cnblogs.com/bigshow/archive/2009/01/03/1367661.html
另外其中哪一种方法,都可以在构造函数里,分配空间后通过arr[i][j]进行赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式