C++/Iteratory: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
mNie podano opisu zmian |
|||
Linia 1:
== Wstęp
Idea iteratorów opiera się na tym, by ułatwić i usprawnić pracę na kontenerach. Daje możliwość dotarcia do danego składnika pojemnika bez konieczności znajomości jego struktury. Słusznie używanie iteratora przypomina pracę przy pomocy zwykłych wskaźników. Jest on jednak czymś więcej niż wskaźnik - w przeciwieństwie do wskaźników, korzystając z iteratora nie musimy martwić się czy przypadkiem nie przekroczyliśmy zakresu pojemnika ani czy poprawnie wskazuje nam on na element. Tym wszystkim zajmuje się sam iterator, co pozwala programiście skupić się na innych problemach w trakcie tworzenia programu.
Czym więc jest iterator? Jest on pewnego rodzaju uogólnionym wskaźnikiem. Strukturalnie iterator jest obiektem, który wskazuje na inny obiekt. Można używać gotowych iteratorów dla kontenerów z STL przez
Istnieją pewne analogie między iteratorem a wskaźnikiem. Przede wszystkim znajomo wyglądają wyrażenia:
Linia 105:
3
Metody begin() i end() skonstruowane są do przeglądania wektora od początku do końca. Co jeśli chcemy działać na składowych wektora w odwrotnej kolejności? Nie ma problemu. Istnieje bowiem metoda '''rbegin()''', która zwraca odwrócony iterator wskazujący na ostatni element pojemnika (mówi się także, że jest to odwrócony początek). Odwołuje się on do elementu bezpośrednio poprzedzającego iterator wskazywany przez end. Jest to odwrócony iterator bezpośredniego dostępu. Mamy także
<source lang="cpp">
#include <iostream>
Linia 137:
{{Porada|
Używanie iteratorów w pętli for skutkuje dość
<source lang="cpp">
Linia 154:
</source>
Powyższy kod wyprowadza na standardowe wyjście zwartość
}}
|