Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Mając przkładowy set<TKlasa>, czy moge przechowywać w nim obiekty klasy pochodenej do klasy TKlasa.
W jaki sposób organizowana jest pamięć w kontenerze set ? Jeśli to lista dwustronna, to elementem listy jest obiekt TKlasa czy wskaźnik do niego ? Gdzie znajdują się wskaźniki następny/poprzedni ?
Mając przkładowy set<TKlasa>, czy moge przechowywać w nim obiekty klasy pochodenej do klasy TKlasa.
W jaki sposób organizowana jest pamięć w kontenerze set ? Jeśli to lista dwustronna, to elementem listy jest obiekt TKlasa czy wskaźnik do niego ? Gdzie znajdują się wskaźniki następny/poprzedni ?
Mozesz przechowywac w nim pochodne, tylko zczytujac bedziesz musial je rzutowac na wlasciwy typ, jesli chcesz korzystac z jego skladowych i metod.
Trudno powiedziec jak zorganizowana jest pamiec, bo to zalezy od implementacji, ale ja bym stawial na kopiec z tablica haszujaca. Kopiec, bo :
The find() function returns an iterator to key, or an iterator to the end of the set if key is not found.
tak na pewno nie, bo metoda insert wrzuca kopie - wywoływany jest konstruktor kopiujący klasy Base ! i reszta danych (unikatowych dla Derived) jest tracona.