我有以下std :: vector声明:
的std ::矢量<标准::矢量<标准::矢量< 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 ::矢量< T>有一个构造函数,它有两个参数,一些元素和一个初始值.在您的情况下,您要初始化m_input与100个副本的std :: vector< std :: vector< int> >,所以它是:m_input(100,X).现在,X又是一个100 std :: vector< int>的向量,它又包含一百个int:
:m_input(100,std :: vector< std :: vector< int>(100,std :: vector< int>(100,0)))