Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是阵列<;国际,2>;这段代码的意思是什么? 我在阅读C++程序设计语言第四版时遇到了这段代码。 template<class T> class Matrix { array<int,2> dim; // two dimensions T∗ elem; // pointer to dim[0]*dim[1] elements of type T public: Matrix(int d1, int d2) :dim{d1,d2}, elem{new T[d1∗d2]} {} // error handling omitted int size() const { return dim[0]∗dim[1]; } Matrix(const Matrix&); // copy constructor Matrix& operator=(const Matrix&); // copy assignment Matrix(Matrix&&); // move constructor Matrix& operator=(Matrix&&); // move assignment ˜Matrix() { delete[] elem; } // ... }; 模板 类矩阵{ 数组dim;//二维 T∗ elem;//指向类型为T的dim[0]*dim[1]元素的指针 公众: 矩阵(intd1,intd2):dim{d1,d2},elem{new T[d1∗d2]}{}//忽略错误处理 int size()常量{return dim[0]∗dim[1];} 矩阵(常数矩阵&);//复制构造函数 矩阵和运算符=(常数矩阵&);//复制赋值 矩阵(矩阵&&);//移动构造函数 矩阵&运算符=(矩阵&);//移动赋值 ~Matrix(){delete[]elem;} // ... };_C++_Arrays_C++11_Templates_Copy Constructor - Fatal编程技术网

什么是阵列<;国际,2>;这段代码的意思是什么? 我在阅读C++程序设计语言第四版时遇到了这段代码。 template<class T> class Matrix { array<int,2> dim; // two dimensions T∗ elem; // pointer to dim[0]*dim[1] elements of type T public: Matrix(int d1, int d2) :dim{d1,d2}, elem{new T[d1∗d2]} {} // error handling omitted int size() const { return dim[0]∗dim[1]; } Matrix(const Matrix&); // copy constructor Matrix& operator=(const Matrix&); // copy assignment Matrix(Matrix&&); // move constructor Matrix& operator=(Matrix&&); // move assignment ˜Matrix() { delete[] elem; } // ... }; 模板 类矩阵{ 数组dim;//二维 T∗ elem;//指向类型为T的dim[0]*dim[1]元素的指针 公众: 矩阵(intd1,intd2):dim{d1,d2},elem{new T[d1∗d2]}{}//忽略错误处理 int size()常量{return dim[0]∗dim[1];} 矩阵(常数矩阵&);//复制构造函数 矩阵和运算符=(常数矩阵&);//复制赋值 矩阵(矩阵&&);//移动构造函数 矩阵&运算符=(矩阵&);//移动赋值 ~Matrix(){delete[]elem;} // ... };

什么是阵列<;国际,2>;这段代码的意思是什么? 我在阅读C++程序设计语言第四版时遇到了这段代码。 template<class T> class Matrix { array<int,2> dim; // two dimensions T∗ elem; // pointer to dim[0]*dim[1] elements of type T public: Matrix(int d1, int d2) :dim{d1,d2}, elem{new T[d1∗d2]} {} // error handling omitted int size() const { return dim[0]∗dim[1]; } Matrix(const Matrix&); // copy constructor Matrix& operator=(const Matrix&); // copy assignment Matrix(Matrix&&); // move constructor Matrix& operator=(Matrix&&); // move assignment ˜Matrix() { delete[] elem; } // ... }; 模板 类矩阵{ 数组dim;//二维 T∗ elem;//指向类型为T的dim[0]*dim[1]元素的指针 公众: 矩阵(intd1,intd2):dim{d1,d2},elem{new T[d1∗d2]}{}//忽略错误处理 int size()常量{return dim[0]∗dim[1];} 矩阵(常数矩阵&);//复制构造函数 矩阵和运算符=(常数矩阵&);//复制赋值 矩阵(矩阵&&);//移动构造函数 矩阵&运算符=(矩阵&);//移动赋值 ~Matrix(){delete[]elem;} // ... };,c++,arrays,c++11,templates,copy-constructor,C++,Arrays,C++11,Templates,Copy Constructor,类中有两个数据成员,其中一个是T类型的指针。我无法理解arraydim是什么意思。这是array类型的成员变量dim的声明(可能std::array)成员变量dim存储2D矩阵的第一维和第二维的大小,matrix。这两个大小存储为数组(我假设:一个包含两个int类型值的数组) 没有这个成员变量dim,矩阵不知道它的堆分配数组elem中包含多少个元素(请注意elem是指向连续元素数组中包含的第一个元素的指针)。因此矩阵无法安全地迭代这些元素,因为它不知道何时停止。(事实上,Matrix可以执行的唯

类中有两个数据成员,其中一个是
T
类型的指针。我无法理解
array
dim
是什么意思。

这是
array
类型的成员变量
dim
的声明(可能
std::array

成员变量
dim
存储2D矩阵的第一维和第二维的大小,
matrix
。这两个大小存储为
数组
(我假设:一个包含两个
int
类型值的数组)


没有这个成员变量
dim
矩阵
不知道它的堆分配数组
elem
中包含多少个元素(请注意
elem
是指向连续元素数组中包含的第一个元素的指针)。因此
矩阵
无法安全地迭代这些元素,因为它不知道何时停止。(事实上,
Matrix
可以执行的唯一有用的操作是释放堆分配的数组,就像析构函数中的情况一样。)因此,堆分配数组的大小(即
dim[0]*dim[1]
)也被显式存储。

这是利用标准库中的std::array。您可以在此处找到详细的参考资料:

数组x

声明长度为x的整数数组;在你的情况下,x是2

这稍后用于存储矩阵的形状