warning C4018: '<' : signed/unsigned mismatch
-
hi.
ich habe hier diese warnung (siehe titel) in meinem programm (ziemlich oft), für folgenden code:
for (i=0;i<las.size();i++)diese würde ich gerne beseitigen. ich hatte das mal so probiert:
for (i=0;i<(int)las.size();i++), da wurde mir aber gesagt, ich sollte keine "naked cast" benutzen.
also wie mache ich es dann richtig?
DANKE.
STICK.
-
i mit dem gleichen unsigned Type wie der Return von .size() deklarieren.
-
Wenn 'las' ein Standard-Container (vector, set, map, string,...) ist, die geben Größenangaben als size_t heraus, also solltest du deine Zählervariablen auch als size_t definieren.
(die Alternativen sind einfach: die Warnung unterdrücken durch einen Cast - oder die Warnung ignorieren (der Vergleich wird erst problematisch, wenn dein Container mehr als INT_MAX Elemente hat))