Wpis z mikrobloga

Hej,

Potrzebuję z wektora 10000 elementowego usunąć 100 elementów(po indeksie, nie po wartości).
W jaki sposób mógłbym to zrobić przy utracie jak najmniejszej wydajności?
Jeślibym po kolei zaczął usuwać elementy początkowe to za każdym razem ponad 9000 indeksów również by się przesuwało.

#rustlang #programowanie
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qarmin: Ale trochę konkretniej, co rozumiesz przez "usunąć"? Skoro to wektor to naturalnym jest, że usuwanie i dodawanie nie na końcu będzie wolne. Może zamiast tego możesz użyć innej struktury danych?
  • Odpowiedz
@qarmin: jeśli kolejność nie ma znaczenia to użyj Vec::swap_remove(index) który jest O(1). Jesli ma znaczenie to posortuj sobie potem, co bedzie i tak szybsze niz enumerate() z filter() po indeksach.
  • Odpowiedz