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

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条)

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮