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

踩过的坑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 (size_t i = s.length() - 1; i != string::npos; --i) cout << s[i];
posted @ 2023-10-03 21:24  iamy  阅读(72)  评论(0)    收藏  举报