eher < oder !=
-
Ich habe nun schon seit einiger Zeit ne Debatte am laufen.
Es geht darum welche bedingung günstiger ist in einer for schleife: != oder <z.b. for(int i = 0; i != vec.size(); i++)
oder halt for(int i = 0; i < vec.size(); i++)mal ungeachtet dessen das man hier mit vector iteratoren arbeiten sollte (oder?) welche version würdet ihr wählen?
-
!= weil überladene Iteratoren immer != mindestens so schnell wie < können.
Denk an eine verkettet Liste, da muß < echt finden, ob ein Node vor dem anderen ist, dazu muß man schlimmstenfalls durch die gante Liste laufen. Aber != ist quasi geschenkt.
-
das heißt? Ich bin erst im Kapitel von Listen, mit verketteten Listen habe ich mich noch nicht beschäftigt, kannst du das bitte ein wenig umschreiben?
-
Dafür muss sichergestellt sein, dass i nicht auch noch an einer anderen Stelle verändert wird, bzw. dass der Vergleich immer funktioniert (mögliche Ungenauigkeit beachten),...
Sonst endet es in einer Endlosschleife
-
das heißt, dass es:
- bei ganzzahltypen egal ist, was du nimmst
- bei gleitkommazahlen != nicht wirklich sinnvoll ist
- bei iteratoren != niemals langsamer ist als <
- und vor allem: du kannst sicher sein, dass jeder iterator einen !=-operator besitztbb
-
volkard schrieb:
!= weil überladene Iteratoren immer != mindestens so schnell wie < können.
Denk an eine verkettet Liste, da muß < echt finden, ob ein Node vor dem anderen ist, dazu muß man schlimmstenfalls durch die gante Liste laufen. Aber != ist quasi geschenkt.Weil der Name "vec" ja auf ne Liste hinweist.

std::vector<int> vec(2); for(int i = 0; i != vec.size(); i++) if ( i == vec.size()-1 ) vec.pop_back();
-
oO das heißt?
-
Das heißt:
(1) != funktioniert immer, < funktioniert nur meistens
(2) != ist nie langsamer als <, manchmal schneller
Wir gewöhnen es uns an, standardmäßig != zu verwenden.
-
Jud4s schrieb:
oO das heißt?
Wenn man immer != statt < nimmt, muß man nie mehr nachdenken, welchen COntainer man gerade benutzt. Ich treibe es so weit, daß ich auch bei int immer != nehme und gar nicht mehr nachdenke. Nachdenken ist doof.
-
volkard schrieb:
Nachdenken ist doof.

-
volkard schrieb:
Nachdenken ist doof.
btw: Ich empfehle das Kabarett-Programm "Nachdenken lohnt sich" von Vince Ebert.