Avatar ·

std::vector पर इटरेशन: unsigned बनाम signed इंडेक्स — क्या चुनें?

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