c++ - 在 C++ 中创建和访问 4D vector 的问题

标签 c++ vector

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

关于c++ - 在 C++ 中创建和访问 4D vector 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59644672/

相关文章:

c++ - 使用 MFC 的表/网格

c++ - 随机选择字典单词

c++ - 在 C++ 中的 STL 比较函数中使用 "<="符号而不是 "<"符号有什么区别?

c++ - GetLastError 在调用 WinHttpOpenRequest 后返回 6

c++ - std::vector emplace_back 实现

以模板作为函数参数的 C++ 自定义比较函数

c++ - 错误 : 'object' was not declared in this scope

c++ - 计算容器内的项目重复次数

c++ - 使用 boost assign 初始化具有固定大小的 vector 的 vector

matlab - 如何将多个行向量与矩阵进行比较?