2011-11-18 11 views

Respuesta

44

sustituir todas las definiciones de int i con size_t i.

std::vector<T>::size() devuelve el tipo size_t que es sin signo (ya que no tiene sentido para recipientes para contener un número negativo de elementos).

+1

Esta es una mala idea, ya -3 int sería más grande que size_t 31 con tu solución. Si bien esta solución funciona para el ejemplo actual, esto puede llevar a errores difíciles de depurar en otros casos. – Sergei

6

Di std::size_t i = 0;:

for (std::size_t i = 0; i != v.size(); ++i) { /* ... */ } 
5

También es posible usar iteradores en lugar de evitar la posibilidad de una advertencia por completo:

for (std::vector<int>::const_iterator i = v.begin(); i != v.end(); ++i) 
{ 
    ... 
} 

O si usted está usando C++ 11:

for (int i : v) 
{ 
    ... 
} 
Cuestiones relacionadas