Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przenoszenie elementu z jednego vector do drugiego

Ostatnio zmodyfikowano 2013-08-07 15:42
Autor Wiadomość
mar3
Temat założony przez niniejszego użytkownika
Przenoszenie elementu z jednego vector do drugiego
» 2013-08-07 15:21:51
Witam,
Mam dwie tablice std::vector przechowujące wskażniki do obiektów swojej klasy np:
C/C++
vector < MyClass *> tab1;
vector < MyClass *> tab2;
Do pierwszej dodaje za pomocą operatora new nowy element
tab1.push_back( new MyClass( 10, 20 ) );

Następnie dodaje ten element z pierwszej tablicy do drugiej i usuwam z pierwszej
C/C++
tab2.push_back( tab1[ 0 ] );
tab1.erase( tab1.begin() );
Czy teraz moge odwołać się do tego elementu z drugiej tablicy czyli
tab2[ 0 ]
Czy bedzie jakiś wyciek pamięci?

PS.
Oczywiście pod koniec:
delete tab2[ 0 ];
P-89685
pekfos
» 2013-08-07 15:39:33
Możesz się odwołać, vector nie zwalnia wskaźników, ani nie kopiuje tego, na co wskaźniki wskazują.
P-89688
mar3
Temat założony przez niniejszego użytkownika
» 2013-08-07 15:42:57
Dzięki za odpowiedź.
P-89693
« 1 »
  Strona 1 z 1