Witam piszę ponieważ natknołem na małą zagwozdkę. Otóż chce stworzyć jakiś kontener, z którego będe mógł wylosować jakiś dowolny element a następnie go usunąć. Zastanawiałem się na początku nad użyciem std::vector<> ponieważ posiada on iterator swobodnego dostępu i można łatwo odwoływać się do elementów.
np. losuje sobie liczbe n=6 , następnie odwołuje się do vectora MyVector[n] i moge sobie działać na wylosowanym obiekcie. Następnie trzeba go usunąć więc używam funkcji vector.erease(n). Problem tkwi tutaj w bardzo słabej efektywności ponieważ za każdym razem kiedy dodaje element do wektora lub usuwam tak naprawdę kopiuję całą tablicę. (raczej kiepsko przy większej ilości danych)
rozwiązanie z listą wydaje się bardziej efektywne ponieważ lista nie ma układu takiego jak tablica i można swobodnie dodawać i usuwać z niej elementy bez utraty na jakości. Ale znowu jak wylosować losowy element?
Bardzo prosiłbym o jakieś sugestie:)