【发布时间】:2019-06-11 14:46:55
【问题描述】:
我想在类的构造函数中初始化一个二维数组,但是编译器给了我这个错误“在没有适当的 operator() 或转换函数到函数指针类型的情况下调用类类型的对象”。
class Matrix
{
public:
Matrix() {};
Matrix(size_t x, size_t y) { a(x, vector<int>(y , 0 )); }
private:
vector<vector<int>> a;
};
【问题讨论】:
-
成员初始化的正确语法是构造函数初始化列表。
-
要实现矩阵,我建议使用一维数组。您只需要一维内存布局即可实现矩阵。然后,
operator[]将访问具有 2D 坐标的正确元素,映射到 1D 向量中。
标签: c++ vector constructor initialization assign