Возврат обратного итератора к обратному концу Возвращает обратный итератор
указывая на теоретический элемент, предшествующий первому элементу в
вектор (который считается его обратным концом).
Диапазон между vector :: rbegin и vector :: rend содержит все
элементы вектора (в обратном порядке).
теоретический элемент, предшествующий первому -> На него нельзя ссылаться. Это не указывает на элемент.
Я предполагаю, что вы хотите сделать:
v.back()->push_back({});
Это, учитывая, что v
не пусто. Сначала вы должны сделать v.push_back({})
, если он пуст в качестве примера.
Что касается IDE, это должно быть проблемой конфигурации. Я в основном работаю на Eclipse, там эта проблема обычно решается:
Установка параметров компилятора в соответствии с настройками вашего cmake (например, проекты C ++ по умолчанию не включают c ++ 11, поэтому вы должны убедиться, что он имеет -std = c ++ 11 в настройках компилятора IDE).
Повторное сканирование всех включений.
Обычно вы можете попытаться проверить, не распознано ли что-то (например, недопустимо использовать ключевое слово vector). И когда вы нажмете Ctrl + клик по вектору, вы увидите, какой заголовок использует IDE и какой код он использует (могут быть некоторые ifdef, а некоторые могут быть не активированы, например, __cppversion> = 201103L или что-то подобное означает IDE считает, что у вас нет компилятора C ++ 11).