Itération sur std::vector : index signé ou non signé – que choisir ?
Bonjour à tous ! J’ai récemment commencé à apprendre le C++ et j’ai rencontré un problème lors de l’itération sur `std::vector`. Quand j’écris une boucle, j’utilise généralement `int i`, mais le compilateur (GCC) émet un avertissement concernant la comparaison entre signé et non signé. Voici un exemple :
```cpp
#include
#include
int main() {
std::vector vec = {1, 2, 3, 4, 5};
for (int i = 0; i < vec.size(); ++i) { // avertissement : comparaison signé/non signé
std::cout << vec[i] << " ";
}
return 0;
}
```
Avertissement : `warning: comparison between signed and unsigned integer expressions [-Wsign-compare]`.
Je comprends que `vec.size()` retourne `size_t` (non signé), alors que `i` est `int` (signé). Si je change `int` en `size_t` ou `unsigned int`, l’avertissement disparaît. Mais alors je ne peux pas exécuter