我正在使用的模板是

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/

10-11 06:41