传递二维数组

int m[][4] = { 
		{0,0,0,1},
		{1,0,0,1},
		{0,0,1,0} };

	
Mtriple<int> t(3, 4, (int*)m);

  在传递任意行和列的二维数组时,可以采取在main函数中写成上述形式的方法

而头文件中写的函数要通过地址找到值

template<class DataType>
inline Mtriple<DataType>::Mtriple(int mrow,int mcol, DataType *m)
{    int cnt=0;
        this->mrow = mrow;
	this->mcol = mcol;
	for (int i = 0; i < mrow; i++) {
		for (int j = 0; j < mcol; j++) {
			if (*(m+i*mcol+j) != 0) {
                            this->data[++cnt].row = i+1;
			    this->data[cnt].col = j+1;
			    this->data[cnt].e = *(m + i * mcol + j);
			    cout << this->data[cnt].row << " " << this->data[cnt].col << " " << this->data[cnt].e << endl;
			}
		}
	}
	
}                

  当然固定行列的写法只需要main 函数里

fun(m);

函数里

void fun(int m[3][4]) {
	for (int i = 0; i < 3; i++)
		for (int j = 0; j < 4; j++)
			cout << m[i][j];
}

  

 

posted @ 2019-11-04 12:40  风间6324  阅读(221)  评论(0编辑  收藏  举报