所以,我有以下内容:
std::vector< std::vector <int> > fog;
Run Code Online (Sandbox Code Playgroud)
我非常天真地初始化它:
for(int i=0; i<A_NUMBER; i++)
{
std::vector <int> fogRow;
for(int j=0; j<OTHER_NUMBER; j++)
{
fogRow.push_back( 0 );
}
fog.push_back(fogRow);
}
Run Code Online (Sandbox Code Playgroud)
感觉非常错误......有没有另一种方法来初始化这样的矢量?
我需要从用户获得输入N并生成N*N矩阵.我该如何申报矩阵?一般来说,数组和矩阵的大小应该在声明中固定,对吧?怎么样vector<vector<int>>?我从来没有使用过这个,所以我需要老兵的建议.
我正在使用2D阵列的Vs2010 c ++工作.我从1D指针开始,使用[]操作如下:
class CMatrix
{
void clear();
public:
int nRows;
int nCols;
short * MyMat;
CMatrix();
CMatrix(int r,int c);
~CMatrix(void);
void SetMatrix(int r,int c);
short * operator[] (const int row)
{
return MyMat + (row*nCols);
}
};
Run Code Online (Sandbox Code Playgroud)
我不介意改为2D指针.
但是我的问题是调试.因为我使用指针,所以无法看到数组内容.
还有其他选择吗?
我不喜欢使用矢量.