Я пытался решить эту проблему в течение нескольких часов, но я не знаю, как обойти это. У меня есть список значений в списке контейнера, как следующее:Ошибка выполнения: утверждение не выполнено, список Iterater не является неразрешимым
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
Я также создал еще один список указателей, указывающих на каждый 4-й элемент. Поэтому они указывают на следующее:
[0,4,8,12]
У меня есть способ вернуть конец списка указателей. Как следующее:
int* end() {return *(pointerlist.end()) ;};
Это дает мне «Ошибка: Assertion Failed, Список Iterater не разыменовываемыми»
Я понимаю, что я ПОЛУЧАТЬ эту ошибку, потому что я пытаюсь выйти за пределы конца списка указателей, но мне бы хотелось иметь значение последнего элемента в этом списке. Я тоже пробовал делать следующее, но это только ухудшает ситуацию.
int* end() {return *(pointerlist.end() - 1) ;};
Есть ли у кого-нибудь идеи, как я могу получить последний элемент в списке указателей?
Что вы имеете в виду "сделал вещи хуже"? Что случилось? –
Когда я помещаю -1, я получаю около 20 ошибок, все выглядят так: Ошибка ошибка C2784: '_RanIt1 :: difference_type std :: operator - (std :: move_iterator <_RanIt> &, const std: : move_iterator <_RanIt2> &) ': не удалось вывести аргумент шаблона для' std :: move_iterator <_RanIt> & ' – SSS