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

Po co używać iteratora.

Ostatnio zmodyfikowano 2015-10-06 18:19
Autor Wiadomość
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:

C/C++
for( some_iterator = some_vector.begin(); some_iterator != some_vector.end();
some_iterator++ )
{
    //coś tutaj robiny
}


//zamiast znacznie bardziej przejszystego:

[ cpp ]
for( int i = 0; i < some_vector.size(); i++ )
{
    //coś tutaj robimy
}
P-138193
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.
P-138194
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 !!!
P-138197
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.
P-138201
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 [].
P-138207
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.
P-138208
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ą.
P-138209
« 1 »
  Strona 1 z 1