int main(){
Mat C = (Mat_<double>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
cout << "Total matrix:" << endl;
cout << C << endl;
Mat A = (Mat_<double>(1,3) << 2, 3, 5);
Mat dsttemp = C.row(2); //M为目的矩阵 n*m
A.copyTo(dsttemp); //
cout << dsttemp<<endl;
cout << C<<endl;
return 0;
}
Mat中row()函数为创建一个指定行数的矩阵头并返回,新矩阵和原始矩阵共享一份基础数据。
因此在这段代码中,第八行代码的意思就是把C矩阵的第三行给dsttemp,即dsttemp指向C矩阵的第三行的空间。
那么将A矩阵用copyto函数赋值给dsttemp变量,则C矩阵的第三行的内容也会改变。