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

Jak się mają iteratory wewnątrz kontenerów do ogólnych typów iteratorów.

Ostatnio zmodyfikowano 2020-12-28 02:23
Autor Wiadomość
Ashey
Temat założony przez niniejszego użytkownika
Jak się mają iteratory wewnątrz kontenerów do ogólnych typów iteratorów.
» 2020-12-27 19:23:28
Próbuję zrozumieć jak działają iteratory, z tego co wiem kontenery z STL (np. std::vector) definiują własną klasę zagnieżdżoną - iterator (np. std::vector::iterator) dla której definiują operacje jakie można na tych iteratorach wykonać. Z kolei  funkcje szablonowe z STL przyjmują argumenty typu szablonowego (np. class InputIterator) i nie rozumiem dlaczego dla takiego std::vector::iterator podanego do funkcji można wywyływać metody. To tak, że typ podany za InputIterator musi spełniać jakieś ogólne warunki określone dla tego typu iteratora na którym pracuje funkcja? Pytam pod kątem pisania własnego kontenera, jak zrobić aby iterator takiego kontenera pasował do ogólnych funckji z STL'a.
P-177884
pekfos
» 2020-12-27 20:52:00
To tak, że typ podany za InputIterator musi spełniać jakieś ogólne warunki określone dla tego typu iteratora na którym pracuje funkcja?
Tak.
P-177886
Ashey
Temat założony przez niniejszego użytkownika
» 2020-12-27 23:17:21
Czyli te rodzaje iteratorów (wejściowe, postępujące itd.) określają ogólne zasady jakie musi spełniać iterator kontenera aby działać z funkcjami wymagającymi danego typu iteratora?
P-177887
DejaVu
» 2020-12-28 00:33:24
Tak. Przykładowo: jeżeli wymagany jest random access operator do metody, to musisz mieć zaimplementowanych kilka operatorów (w tym operator[], operatory porównania, inkrementacji, dekrementacji, dodawania i odejmowania operatorów, dereferencji oraz mieć odpowiednie konstruktory). Szczegóły znajdziesz na stronie: http://www.cplusplus.com/reference/iterator/RandomAccessIterator/
P-177888
Ashey
Temat założony przez niniejszego użytkownika
» 2020-12-28 02:23:26
Dzięki bardzo
P-177889
« 1 »
  Strona 1 z 1