Witajcie.
Mam sobie vector zadeklarowany w następujący sposób: std::vector<unique_ptr<X>> WEKTOR
Załóżmy, że w wektorze przechowywana jest już jakaś ilość obiektów klasy X.
Problem rodzi się, kiedy chce usunąć dowolny element wektora? Jak to zrobić?
Nie chce przerywać wektora, dlatego robię to tak:
std::vector<unique_ptr<X>>::iterator a //element który chce usunąć
std::vector<unique_ptr<X>>::iterator end = WEKTOR.end() //ostatni element
(*a) = std::move(*(end-1));
WEKTOR.erase(end-1);
Niestety, ale mój sposób nie działa.
Jak to zrobić prawidłowo?