Jak usunąć ostani element z std::vector

0

Cześć,

muszę usunąć ostatni element z wektora,
pierwszą myślą jest:

myVector.erase(myVector.rbegin());

tyle, że nie przyjmuje mi odwróconego iteratora.

Takie rozwiązanie też nie działa bo gdy rozmiar jest równy 1 to wyrzuca błąd

myVector.erase(myVector.end() - 1);
1

Nie widzę nic złego w drugiej wersji; Ustawiasz iterator na ostatni element, czas stały.

0

Z g++ -std=c++17 się kompiluje i działa, z rozmiarem jeden również.

std::vector<int> myVector{1};
myVector.erase(myVector.end() - 1);
for (auto & e : myVector)
	std::cout << e << " "; // -> Pusto:)
}
3

Jakiś konkretny powód by nie używać pop_back?

1 użytkowników online, w tym zalogowanych: 0, gości: 1