int i = 0;
int j = 0;
vector<vector<int>> normal;
vector< vector<int> >::iterator row;
vector<int>::iterator col;
for (i = 1; i < 10; i++) {
for (j = 1; j < 10; j++) {
normal[i].push_back(j);
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释我做错了什么吗?在编译过程中,我收到错误“矢量下标超出范围”
你没有放入任何东西normal。在你往里面放东西之前,它一直是一个空向量。
你可以通过每次迭代给它一个新值来解决这个问题
for (i = 0; i < 10; i++) {
normal.push_back(vector<int>());
for (j = 0; j < 10; j++) {
normal[i].push_back(j);
}
}
Run Code Online (Sandbox Code Playgroud)
此外,您的i和j被初始化为1,但我相当确定您的意思是0。我在我的片段中解决了这个问题。
小智 6
矢量法线为空。您可以按如下方式初始化向量。
vector<vector<int>> normal(10, vector<int>());
Run Code Online (Sandbox Code Playgroud)