【发布时间】:2017-09-26 02:00:55
【问题描述】:
我正在用 C++ 制作一个模板化的矩阵类。为了创建这个类,我创建了一个指针数组,这些指针指向动态数组。
到目前为止我有:
template<typename T> class Matrix
{
public:
//constructor
int **m = new int*[_rows];
for (int i = 0; i < _rows; i++)
{
m[i] = new int[_cols];
}
//destructor
for (int i = 0; i < _rows; i++)
{
delete[] m[i]
}
delete[] m;
};
我还想创建一些函数来操作这个结构。 我见过很多类似的代码,但我没有看到它是如何创建一个包含指向其他数组的指针的数组。这个概念让我感到困惑,我只想有人向我澄清我应该如何做我想做的事。
我希望类被隔离并且与输入没有任何关系。它可能会在其他代码中被调用并使用我的函数来创建矩阵结构。创建一个指针数组对我来说并不是令人困惑的部分,它使这些指针指向其他数组,并且指针数组的大小会根据输入条目的数量而增加。
【问题讨论】:
-
让您的生活更轻松,只需使用
std::vector而不是指针和原始内存管理。 -
谢谢。但从概念上讲,我正在尝试使用动态分配的数组来实现吗?
-
当然可以。矢量如何在内部工作?它所做的与您尝试做的没有什么不同,只是更安全。其次,您的目标是开发 Matrix 类还是摆弄动态数组管理?如果是开发 Matrix 类,那么使用
vector可以让您继续开发 Matrix 类的实际工作。
标签: c++ matrix dynamic-arrays template-classes arrayofarrays