Implementacja szablonowa pojemnika vector i lista
Ostatnio zmodyfikowano 2013-02-21 18:33
Miquel Temat założony przez niniejszego użytkownika |
Implementacja szablonowa pojemnika vector i lista » 2013-02-21 17:04:12 Witam, na uczelni za zadanie na jednych laboratoriach mamy zrobic pojemnik na dowolne obiekty w implementacji wektorowej oraz listowej. Do tego nalezy zastosowac iteratory w tych pojemnikach. Moj problem polega na tym, ze chcialbym w petlach wyswietlac zawartosc calego pojemnika wg. skladni zadanej w sekcji main. Niestety aktualnie ostatni element jest pomijany. Jestem swiadom, ze to przez wlasciwosc petli for, narazie jedynym rozwiazaniem jakie wymyslilem jest wykonywanie polecenia w 3-ciej sekcji petli, co nie jest satysfakcjonujace. PS. iterator jest ustawiany na ten ostatni element. Prosze o sugestie w jaki sposob zmienic zawartosc iteratorow, by uzyskac oczekiwany rezultat. PS:Uprzedzajac komentarze o braku destruktorow, itp. Narazie bawilem sie w uruchomienie kodu testowego. Kod źrodlowy: http://wklej.org/id/962065/ |
|
domin568 |
» 2013-02-21 17:18:16 Nie wiem o co ci chodzi , ale w pętli for spróbuj użyć preinkrementacji , powinna się wykonać raz jeszcze . |
|
Miquel Temat założony przez niniejszego użytkownika |
» 2013-02-21 17:31:33 W kodzie przeciez zostaly uzyte same preinkrementacje. Tylko co z tego jak przy warunku roznosci (!=) ostatniego elementu, nie jest ona spelniona, przez co nie wykonuje sie zawartosc.
Chce by bez modyfikacji kodu testowego wyswietlac cala zawartosc pojemnika.
|
|
domin568 |
» 2013-02-21 17:37:41 Jak mamy ci pomoc jak nie znamy kodu źródłowego ?? |
|
Miquel Temat założony przez niniejszego użytkownika |
» 2013-02-21 17:40:48 Kod byl caly czas w linku, zapomnialem opisac, ze tam trzeba sie kierowac :P |
|
unimator |
» 2013-02-21 18:04:06 1. Serio musisz sobie komplikować życie z tymi iteratorami? Metoda, która jest wewnątrz tej klasy do wypisywania elementów jest o wiele klarowniejsza i prostsza = lepsza. 2. Pewnie się zdziwisz, ale rozwiązanie Twojego problemu jest banalne :P Wygląda mniej więcej tak: for( List < int >::Iterator iter = lst.begin(); iter != NULL; ++iter ) cout << * iter << endl;
|
|
Miquel Temat założony przez niniejszego użytkownika |
» 2013-02-21 18:33:30 Tzn. w tym przypadku rowniez nigdy, bym nie uzyl iteratora do wyswietlania wartosci;D Ale taki kod testowy i z czystej ciekawosci chcialem wiedziec czy da sie tak zrobic.
Co do rozwiazania problemu to fajne spostrzezenie i dzieki za nie. Przynajmniej wiem, ze musze czesciej analizowac kod;)
Rozwiazanie dalej nie jest pelne, bo dla pojemnika Table jest kiszka ;D
Chyba jedynie pozostanie przedefiniowanie operatora != by mial zmienna stanu odliczajaca uzycia po spelnieniu warunku. |
|
« 1 » |