Dodawanie forem obiektów klasy do kontenera vector i późniejsze ich usuwanie
Ostatnio zmodyfikowano 2014-06-29 23:37
bingo009 Temat założony przez niniejszego użytkownika |
Dodawanie forem obiektów klasy do kontenera vector i późniejsze ich usuwanie » 2014-06-29 22:12:04 Witam was serdecznie, ostatnio naszła mnie pewna wątpliwość - w jaki sposób dodawać dużo obiektów do kontenera vector? Mam klasę Object i utworzony vector przechowujący objekty tejże klasy. Teraz chcąc dodać np. 30 obiektów typu Object napisałbym tak:
for( int i = 0; i < 30; i++ ) { Object newobject; objects.push_back( newobject ); }
Czy taki kod jest prawidłowy i nie doprowadzi do wycieku pamięci? Z tego co się orientuje, to chyba deklaracja w forze to nie jest dobry pomysł, a tu aż 30 razy deklaruje objekt klasy Object. Jak ten kod jest niewłaściwy to jak mam to robić właściwie? Do usuwania stosuje metodę clear klasy vector, która usuwa z niego całą zawartość. |
|
Glazus |
» 2014-06-29 22:54:35 Z tego co się orientuje, to chyba deklaracja w forze to nie jest dobry pomysł |
Czemu? |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2014-06-29 23:00:53 Ponieważ for wykonuje się ileś razy i ileś razy zrobi deklarację tego samego obiektu, co chyba nie jest zbyt dobre, może i się myle, bo dopiero się uczę pisać obiektowo. |
|
Glazus |
» 2014-06-29 23:04:58 Poczytaj o czasie życia zmiennych. |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2014-06-29 23:17:22 Z tego co wyczytałem, to zmienna lokalna jest niszczona po zakończeniu bloku kodu, w którym jest, więc to chyba odpowiedź na moje pytanie. Taka zmienna jest niszczona po każdym obiegu pętli for? |
|
Monika90 |
» 2014-06-29 23:19:01 Można wyeliminować tę zmienną for( int i = 0; i < 30; i++ ) { objects.emplace_back(); } ale w sumie co to za różnica? |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2014-06-29 23:37:39 Takiej odpowiedzi oczekiwałem, czyli jak jest dobrze, to niech tak zostanie jak w pierwszym poście. Dziękuje bardzo za pomoc. |
|
« 1 » |