Czyszczenie zawartości vektora.

Czyszczenie zawartości vektora.
Losiu22
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
0

Witam,
wiem, może to banalne pytanie, ale chciałbym wyczyścić (usunąć wszystkie dane z wektora) i pozostawić go w takim stanie jaki był po utworzeniu (chcę go potem dalej używać).
Jak to zrobić?
Gdy programowalem w jakimś innym języku wystarczyło:

Kopiuj
 zmienna = new typ_zmiennej;

natomiast w C++ tak się nie da :P

  • Rejestracja: dni
  • Ostatnio: dni
0

http://www.cplusplus.com/reference/stl/vector/

chyba, że wektorem nazywasz coś innego. Poczytaj jakąś książkę albo tutek bo "na czuja" języka się nie nauczysz :]

Losiu22
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
0

Ale jak proponował byś mi szybko usunąć jego zawartość?

  • Rejestracja: dni
  • Ostatnio: dni
0

Zajrzales w ogole na strone dana przez bee? Chyba nie bo tam masz dokladnie opisane funkcje klasy vector(nawet z przykladami). W tym czyszczenie...

Losiu22
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
0

Wybaczcie przeoczyłem.

Kopiuj
myvector.clear(); 
KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2520
0

to nie zwalnia pamieci tylko go czysci - vector tylko realokuje pamiec jak mu jej brakuje, a w druga strone to nie dziala. jesli by interesowalo Cie rowniez zeby zwolnil pamiec to:

Kopiuj
vector<X> aaa;
//tutaj jakies operacje na aaa
// czyszczenie:
aaa = vector<X>();

w większości przypadków będzie to bezużyteczne, ale czasami zdarza się tworzyć na prawdę duże wektory to wtedy warto je trochę opróżnić

matek3005
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 358
0

albo

Kopiuj
vector<Typ> aaa;
(...)
vector<Typ>().swap(aaa);

poza tym proponowałbym sprawdzić kod:

Kopiuj
vector<int> v(100000, 1111111);
cout << static_cast<int>(v.capacity()) << "\n";
    
v = vector<int>();
cout << static_cast<int>(v.capacity()) << "\n";
    
vector<int>().swap(v);
cout << static_cast<int>(v.capacity()) << "\n";

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.