我正在用 c++ 创建一个 4D vector ,但在访问它时出现段错误。这是我正在尝试编写的代码的一部分。
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
语句的所有检查中将 >=
替换为 >
来解决此问题。
关于c++ - 在 C++ 中创建和访问 4D vector 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59644672/