for (string::size_type i = str.size() - 1; i >= 0; i--) {
cout << str[i];
}
string::size_type 為 size_t(無符號),i >= 0 永遠為真,i-- 下溢變巨大正數,無限循環。
for (int i = (int)str.size() - 1; i >= 0; i--) cout << str[i];
for (auto it = str.rbegin(); it != str.rend(); ++it) cout << *it;
for (size_t i = str.size(); i-- > 0; ) cout << str[i]; // i-- > 0 先比較後遞減,i=0 時執行體執行完後 i 變 SIZE_MAX 但循環結束
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "1234";
for (size_t i = str.size(); i-- > 0; ) cout << str[i];
cout << endl;
return 0;
}