Проблема с созданием и доступом к 4D вектору в C ++ - PullRequest
0 голосов
/ 08 января 2020

Я создаю вектор 4D в c ++, но при доступе к нему я получаю ошибку сегментации. Это часть кода, который я пытаюсь написать.

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. По-видимому, он пытается получить доступ к значению, которое не существует. Как мне проверить это?

1 Ответ

2 голосов
/ 08 января 2020

Если glob.size() равно u, то допустимые индексы варьируются от 0 до u-1. Вы сможете исправить это, заменив >= на > во всех ваших проверках в выражении if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...