在 c++ 中创建和访问 4D 向量时出现问题



我正在用 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,则有效索引的范围从0u-1。您应该能够通过在if语句的所有检查中将>=替换为>来解决此问题。

最新更新