我关注 std::vector
声明:
std::vector<std::vector<std::vector<int> > > m_input;
我正在初始化它如下:
m_input.resize (100);
m_output.resize(100);
for (int i = 0; i < 100; ++i) {
m_input [i].resize(100);
m_output[i].resize(100);
for (int j = 0; j < 100; ++j){
m_input [i][j].resize(100);
m_output[i][j].resize(100);
}
}
如何通过成员初始化列表实现这一点?
最佳答案
std::vector<T>
有一个带有两个参数的构造函数,一些元素和一个初始值。在你的例子中,你想要初始化 m_input
100 份 std::vector<std::vector<int> >
, 所以它会是 : m_input(100, X)
.现在,那个 X
依次是 100 的 vector std::vector<int>
,它又包含一百个整数:
: m_input(100, std::vector<std::vector<int> >(100, std::vector<int>(100, 0)))
关于c++ - 多维 vector 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491251/