Po co używać iteratora.
Ostatnio zmodyfikowano 2015-10-06 18:19
Asahel Temat założony przez niniejszego użytkownika |
Po co używać iteratora. » 2015-10-05 22:47:34 Witam, zastanawia mnie po co tak naprawdę zostały wprowadzone iteratory i jaki jest cel w komplikowaniu sobie kodu i pisać coś takiego: for( some_iterator = some_vector.begin(); some_iterator != some_vector.end(); some_iterator++ ) { }
[ cpp ] for( int i = 0; i < some_vector.size(); i++ ) { }
|
|
michal11 |
» 2015-10-05 23:02:58 Iteratory są nie tylko dla vector'a. Nie wszystkie kontenery oferują dostęp do elementów przez operator[]. Iteratory pozwoliły napisać dość uniwersalne(nie zależne od kontenera) algorytmy i to tam się je głównie wykorzystuje. |
|
mateczek |
» 2015-10-06 00:11:46 Są też pętle foreach. Ja przyznam się korzystam z QT i tam wyglądało to tak
foreach (element kontener){ cout<<element<<endl; }
I całą przebieżka po kontenerze jest z automatu !!! teraz c++11 wprowadza taką metodę.
for(QString &s : Con) { // you code here }
Przy najbliższej okazji przetestuje jak to działa !!!
|
|
oputyk |
» 2015-10-06 11:10:35 Na przykład w std::list już nie masz takiej opcji użycia operator [] , musisz użyć iteratora. |
|
Asahel Temat założony przez niniejszego użytkownika |
» 2015-10-06 17:01:00 Oputyk, okej nie ma operatora [], ale pewnie mogę użyć wskaźnika? To w tym wypadku rodzi sie kolejne pytanie, po co iterator skoro wskaźnika mogę użyć w wypadkach jak nie mogę użyć operatora []. |
|
pekfos |
» 2015-10-06 17:16:59 okej nie ma operatora [], ale pewnie mogę użyć wskaźnika? To w tym wypadku rodzi sie kolejne pytanie, po co iterator skoro wskaźnika mogę użyć w wypadkach jak nie mogę użyć operatora []. |
Niby jak chcesz go użyć? Iterator jest po to, by można było uzyskać co najmniej sekwencyjny dostęp do elementów kontenera niezależnie od rodzaju kontenera i zastosowanych struktur danych. Jeśli w jakimś konkretnym kontenerze jest dodatkowo wygodniejsza opcja, to sobie z niej korzystaj. Fakt istnienia ogólniejszego mechanizmu ci przecież tego nie zabrania. po co iterator skoro wskaźnika |
Wskaźnik to też iterator. |
|
Fireho |
» 2015-10-06 18:19:15 Wskaźnika da się używać tylko dla zwykłych tablic. Wszelkie listy, BST, bardziej skomplikowane struktury, dane które nie są wczytane do pamięci - tylko iteratory na to pozwalają. |
|
« 1 » |