我正在用 c++ 创建一个 4D 向量,但在访问它时出现分割错误。这是我尝试编写的代码的一部分。
vector<vector<vector<vector <int>>>> glob;
tuple<int,int> f(vector<vector<int>> map, int u, int i,int k,int childEdge){
if (glob.size()>=u && glob[u].size()>=i && glob[u][i].size()>=k && glob[u][i][k].size()>= childEdge) return make_tuple(glob[u][i][k][childEdge],k);
分段错误发生在 if 中。显然,它试图访问不存在的值。我该如何检查?
如果glob.size()
u
,则有效索引的范围从0
到u-1
。您应该能够通过在if
语句的所有检查中将>=
替换为>
来解决此问题。