如何在运行时使用成员函数为二维 vector 成员变量初始化和分配大小?
这种做法有什么问题吗?
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)));
}
}
最佳答案
您的问题的答案是是,这会很好。它使用 move
防止编译器错误地使用复制赋值,这是一个很好的做法。
虽然你似乎在寻求建议,所以我建议 vector<vector<int>>
考虑到所有子 vector
是一个糟糕的选择s 大小相同。您可以考虑使用单个 vector
.我找了一个使用单个 vector
的例子替换 vector
-的- vector
s 和我能在 http://stackoverflow.com 上找到的最简单的东西这是:https://stackoverflow.com/a/37868317/2642059不过这里写得更好一点:http://upcoder.com/2/efficient-vectors-of-vectors
关于c++ - 在运行时使用成员函数为 2D vector 成员变量初始化和分配大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38241965/