# warning C4018: '<' : signed/unsigned mismatch



## Krikus (19. Juni 2009)

Hi,

ich bekomme in meiner Klasse, wo ich mit Vektoren arbeiten ca. 60 Warnings beim Kompilieren.(Meldung siehe Topic)
Hier mal ein Beispiel:


```
if (v >= 0 && v < test.size() && w > 0 && w < test.size())

//oder

for(int i=0;i<test.size();i++)
```

Kann mir eienr evt. sagen wie ich diese Warnings beheben kann?

Gruß

Krikus


----------



## vfl_freak (19. Juni 2009)

Moin,

ein kurzer Blick in die Hilfe ergibt folgendes:

```
Compiler-Warnung (Stufe 3) C4018@import url(stylesheets/msdn_ie4.css); Compiler-Warnung (Stufe 3) C4018

 'Ausdruck': Konflikt zwischen signed und unsigned
 Der Versuch wurde unternommen, einen vorzeichenlosen Wert mit einem  vorzeichenbehafteten Wert zu vergleichen. Für den Vergleich wurde der  vorzeichenbehaftete Wert in einen vorzeichenlosen Wert konvertiert.
 Wenn Sie einen Vergleich zur Gleichheit ('==') oder Ungleichheit ('!=')  Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Typen vornehmen,  sollten Sie einen Typ in den anderen umwandeln, um einen sicheren Vergleich zu  gewährleisten.
```

Was sind denn 'v' und 'w' für Datentypen ? ? ?

Gruß
Klaus


----------



## Krikus (19. Juni 2009)

"v" und "w" sind Integer Variablen, die an die Methode übergeben werden.


----------



## deepthroat (19. Juni 2009)

Hi.

Die Variablen haben den falschen Typ:

```
vector<TYP>::size_type v, w;
```
Generell solltest du lieber Iteratoren verwenden.

Gruß


----------

