踩过的坑size_t类型下标遍历问题

发布时间 2023-10-03 21:29:09作者: iamy

踩过的坑size_t类型下标逆序遍历

通过下标逆序遍历以下代码是没有问题的

    string s; cin >> s;
    for (int i = s.length() - 1; i >= 0; --i) cout << s[i];

但是如果用符号类型作为循环变量的类型会出现死循环的问题,因为 i>=0 永远是成立的

    string s; cin >> s;
    for (size_t i = s.length() - 1; i >= 0; --i) cout << s[i];

如果非要使用size_t可改为如下代码

    string s; cin >> s;
    for (int i = s.length() - 1; i != string::npos; --i) cout << s[i];