【发布时间】:2016-11-09 13:33:49
【问题描述】:
如何在运行时使用成员函数为二维向量成员变量初始化和分配大小?
这种方法有问题吗?
class A {
vector<vector<int>> m_matrix;
// trying to resize without using explicit resize
// using the constructor of 2D vectors at run time
// want the code to look simpler and avoid new/pointers
void initialize_matrix(int row, int column) {
m_matrix = std::move(vector<vector<int>>(row, vector<int>(column, DEFAULT_VALUE)));
}
}
【问题讨论】:
-
我会使用
vector<vector<int>>(row, vector<int>(column, DEFAULT_VALUE)).swap(m_matrix);而不是 std::move。 -
阿列克谢·巴恩斯:如果我按照显示的方式做会有什么问题吗?
-
取决于您所说的错误,这是一个主观问题。但是,出于所有意图和目的,您可以使用任何您喜欢的方法来构造和初始化成员。
-
两种解决方案似乎都能在恒定时间内达到结果。谢谢你的评论
标签: c++ vector constructor runtime 2d