std::vector पर इटरेशन: unsigned बनाम signed इंडेक्स — क्या चुनें?
सभी को नमस्ते! मैंने हाल ही में C++ सीखना शुरू किया है और `std::vector` पर इटरेशन करते समय एक समस्या का सामना किया। जब मैं लूप लिखता हूं, तो मैं आमतौर पर `int i` का उपयोग करता हूं, लेकिन कंपाइलर (GCC) signed और unsigned की तुलना के बारे में चेतावनी देता है। यहाँ एक उदाहरण है:
```cpp
#include
#include
int main() {
std::vector vec = {1, 2, 3, 4, 5};
for (int i = 0; i < vec.size(); ++i) { // चेतावनी: signed/unsigned तुलना
std::cout << vec[i] << " ";
}
return 0;
}
```
चेतावनी: `warning: comparison between signed and unsigned integer expressions [-Wsign-compare]`.
मैं समझता हूं कि `vec.size()` `size_t` (unsigned) लौटाता है, और मेरा `i` `int` (signed) है। अगर मैं `int` को `size_t` या `unsigned int` में बदल दूं, तो चेतावनी गायब हो जाती है। लेकिन तब मैं नहीं कर सकता