Я написал функцию для поиска всех комбинаций целых чисел между двумя границами. Для этого я написал функцию с тем же именем, которая находит все комбинации целых чисел между двумя границами определенного ...

c++
0
user314 19 Янв 2021 в 02:39

1 ответ

Лучший ответ

Я не понимаю алгоритм, но проблемы достаточно ясны.

Шаг первый, уменьшите размер проблемы, которую я выбрал

#define VAR1 1
#define VAR2 2

Запустите код, сбой в operator [] здесь,

if (i >= numItems || combo[i]+1 != combo[i+1])

Значения переменных

combo = vector of size 1
numItems = 1
i = 0

combo[i+1] - ошибка индекса за пределами допустимого диапазона.

Чтобы добраться до этой точки, не нужно много времени, чтобы пройти через код. Это происходит сразу на второй итерации внутреннего цикла в main. Поскольку я не понимаю, что пытается сделать ваш код, я не могу предложить решение. Но, надеюсь, теперь ошибка вам понятнее.

Поскольку кажется, что вы не знали об этой проблеме с индексами, вам следует перейти на использование at вместо [], чтобы получить определенное поведение даже при ошибке индекса.

2
john 18 Янв 2021 в 23:59