smallcases 2017-07-07 09:38 采纳率: 50%
浏览 2546
已采纳

C++中string::type_size到底是什么,该如何理解

在学习C++过程中写了如下一串代码,调试过程中只有输入英文字母才会结束程序(跳出循环),按照我的理解只要输入的参数n不是string::size _ type就能跳出while循环了啊。
#include
using namespace std;
int main() {

  const string hexdigits = "0123456789ABCDEFF";
  cout << "please enter a series of number between 0 and 15\n"
    << "Separated by spaces. Hit Enter when finished: "
    << endl;
string result;
  string::size_type n;
  while (cin >> n)
       if (n < hexdigits.size())
            result += hexdigits[n];
   cout << "your hex number is " << result << endl;
   return 0;

}
  • 写回答

4条回答 默认 最新

  • 战在春秋 2017-07-07 10:27
    关注

    你的理解基本是对的,除了英文字母外,输入#、¥、%、^等 非数字字符 也会结束循环。

    string::size_type是STL库模板类string的一个成员变量,这部分内容要深入学习可能耗时太多。
    简单的讲,它相当于int类型,区别在于它的大小范围要比int类型大得多。

    可以参考:

    https://msdn.microsoft.com/library/a9c3e0a2-39bf-4c8a-b093-9abe30839591.aspx#basic_string__size_type

    如果对您有帮助,请采纳答案好吗,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置