我正在使用的模板是
template<typename T, size_type MAX_DIM = 500>
我试图弄清楚如何正确分配。
变量T ** array_在构造函数中声明。
这就是我现在所拥有的,但是我尝试了几种不同的语法,但没有用。
array_=new value_type*[dim1_];
for ( long i = 0u; i < dim1_; i++)
array_[i] = new value_type[dim2_];
最佳答案
我不明白为什么模板参数为value_type
时只使用T
:
template<typename T, size_t MAX_SIZE = 500>
class MyArray
{
T** array_;
public:
MyArray(size_t dim1_, size_t dim2)
{
array_ = new T*[dim1_];
for (size_t i = 0; i < dim2; ++i)
array_[i] = new T[dim2];
}
};
请注意,由于您既没有使用
std::vector
也没有使用std::array
,则需要通过析构函数中的delete []
手动释放内存。关于c++ - 在模板化类中分配数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31174805/