size_t und subscript out of range error
-
Hallo,
ich lerne gerade C++ und habe eine Frage zu size_t. Jedes mal wenn ich beispielsweise einen string mit einer for-Schleife von hinten durchlaufen möchte:
for(size_t i = tempString.length()-1; i >= 0; i--) { reverseString += tempString[i]; }bekomme ich einen error: string subscription out of range. Sobald ich das size_t durch ein int ersetze oder das i >= 0 durch i > 0 ersetze, funktioniert es problemlos.
Kann mir jemand erklären wieso? Liegt es daran, dass size_t unsigned ist?
Vielen Dank!
-
benz82 schrieb:
Liegt es daran, dass size_t unsigned ist?
Ja. Dann ist i >= 0 immer erfüllt.
-
Danke Bashar, das macht natürlich Sinn!
-
Eine andere Möglichkeit:
std::copy(tempString.rbegin(), tempString.rend(), std::back_inserter(reverseString));
-
Wenn wir schon dabei sind:
std::string reverseString(tempString.rbegin(), tempString.rend());