Narzędzia użytkownika

Narzędzia witryny


iterator

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
iterator [2008/12/12 02:30]
gierek
iterator [2008/12/12 02:35] (aktualna)
gierek
Linia 9: Linia 9:
   - Za pomocą iteratora można odwiedzić wszystkie elementy kontenera. Dla iteratora ''​p''​ zdefiniowane są instrukcje ''​p++''​ oraz ''​++p''​.   - Za pomocą iteratora można odwiedzić wszystkie elementy kontenera. Dla iteratora ''​p''​ zdefiniowane są instrukcje ''​p++''​ oraz ''​++p''​.
  
-==== Przykładowy iterator ====+===== Przykładowy iterator ​=====
 <code cpp> <code cpp>
 /* klasa wezla kontenera */ /* klasa wezla kontenera */
Linia 76: Linia 76:
 </​code>​ </​code>​
  
-==== Rodzaje iteratorów ====+===== Rodzaje iteratorów ​=====
 Istnieje kilka typów iteratorów,​ w zależności od udostępnianych operacji: Istnieje kilka typów iteratorów,​ w zależności od udostępnianych operacji:
 == iterator wejściowy == == iterator wejściowy ==
Linia 100: Linia 100:
  * ''​i > j'',​ które jest prawdziwe gdy ''​j < i''​  * ''​i > j'',​ które jest prawdziwe gdy ''​j < i''​
  * ''​i >= j''​ (analogicznie ''​i <= j''​),​ które jest prawdziwe gdy ''​!(i < j)''​  * ''​i >= j''​ (analogicznie ''​i <= j''​),​ które jest prawdziwe gdy ''​!(i < j)''​
 +
 +
 +Każdy typ jest też typem niższego poziomu.
  
 Rożne funkcje operujące na kontenerach wymagają iteratora spełniającego pewne właściwości,​ np. prototyp funkcji sort ma postać: Rożne funkcje operujące na kontenerach wymagają iteratora spełniającego pewne właściwości,​ np. prototyp funkcji sort ma postać:
Linia 110: Linia 113:
  czyli podawane argumenty muszą udostępniać operacje ''​i + n'',​ ''​i - n''​ itp.  czyli podawane argumenty muszą udostępniać operacje ''​i + n'',​ ''​i - n''​ itp.
  
-==== Iteratory w bibliotece standardowej ==== +===== Iteratory w bibliotece standardowej ​===== 
-W bibliotece STL każda klasa kontenerowa posiada ​definicje ​odpowiedniego iteratora klasy. Dla jednej może być to wskaźnik (który również może być iteratorem, jako ze posiada wszystkie wymagane właściwości),​ dla innej może być to obiekt. Ponadto klasy te posiadają metody begin() oraz end(), które zwracają iteratory na pierwszy element kontenera oraz na pozycje za ostatnim elementem.+W bibliotece STL każda klasa kontenerowa posiada ​definicję ​odpowiedniego iteratora klasy. Dla jednej może być to wskaźnik (który również może być iteratorem, jako że posiada wszystkie wymagane właściwości),​ dla innej może być to obiekt. Ponadto klasy te posiadają metody ​''​begin()'' ​oraz ''​end()''​, które zwracają iteratory na pierwszy element kontenera oraz na pozycje za ostatnim elementem.
  
 == Iteratory dostępu swobodnego: == == Iteratory dostępu swobodnego: ==
Linia 126: Linia 129:
  * ''​hash_set<​T>::​iterator''​  * ''​hash_set<​T>::​iterator''​
  
-==== Korzystanie z iteratorów ====+===== Przykład - Korzystanie z iteratorów ​=====
 <code cpp> <code cpp>
 /* Przyklad - korzystanie z iteratorow */ /* Przyklad - korzystanie z iteratorow */
iterator.1229045440.txt.gz · ostatnio zmienione: 2008/12/12 02:30 przez gierek