从逻辑上讲,size()成员函数应该似乎返回整型数值,但事实上,size操作返回是string::size_type类型的值。string类类型和其他许多库类型都定义了一些配套类型(companion type)。通过这些配套类型,库函数的使用就与机器无关(machine-independent)。size_type就是这些配套类型中的一种。它定义为与unsigned型(unsigned int获unsigned long)具有相同含义,而且保证足够大的能够存储任意的string对象的长度。string::size_type它在不同的机器上,长度是可以不同的,并非固定的长度。但只要你使用了这个类型,就使得你的程序适合这个机器。与实际机器匹配。string对象的索引也应为size_type类型。

  npos表示size_type的最大值,用来表示不存在的位置。find()成员函数的返回值为size_type,平台编译器为32位,机器为64位。

  string s1 = "Hello";string::size_type count = 5;int c = 0;long k = 0;count=s1.find("w");c = s1.find("w");bool flag1 = (count == string::npos);bool flag2 = (c == string::npos);cout<<"flag1:"<<flag1<<endl<<"flag2:"<<flag2<<endl;cout<<"size_type:"<<count<<endl<<"int:"<<c<<endl;cout<<"string::pos值:"<<string::npos<<endl;cout<<"size of int:"<<sizeof(c)<<endl;cout<<"size of size_type:"<<sizeof(count)<<endl;cout<<"size of long:"<<sizeof(k)<<endl; 

运行结果: 

转载于:https://www.cnblogs.com/catpainter/p/8444751.html

C++ string::size_type相关推荐

  1. 3. std::string::size_type

    string::size_type 是 unsigned 型,所以它至少是signed 型的 2倍. 而 string 中的size() 返回值 为 string::size_type. 所以一些关于 ...

  2. string::size_type

    重读c++ primier, 从这个文章开始做个记录,方便以后自己查阅. 1.string::size_type,string的size()方法返回的类型,可以保证string的任意长度.作为配套类型 ...

  3. string 基本用法

    膜拜大佬orz  http://www.cnblogs.com/OIerShawnZhou/ 最基本的,头文件 #include <cstring> #include <string ...

  4. ATL::CStringA和std::string之间转换的一些误区

    对于刚做windows下VC的开发同学,类型转换应该是一个令其很苦恼的问题.我刚写工作的时候,也为这类问题不停的在网上搜索转换方法.最近工作中遇到一个"神奇"的bug(一般&quo ...

  5. C++/C++11中std::string用法汇总

    C++/C++11中std::string是个模板类,它是一个标准库.使用string类型必须首先包含<string>头文件.作为标准库的一部分,string定义在命名空间std中. st ...

  6. std::string的find问题研究

    https://files-cdn.cnblogs.com/files/aquester/std之string的find问题研究.pdf 目录 目录 1 1. 前言 1 2. find字符串 1 3. ...

  7. C++ size_t 与 size_type区别

    [c++]size_t 和 size_type的区别 为了使自己的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int, unsigned 1. size_t是全局 ...

  8. C++ string 详解

    C++ STL 容器 string string 是 C++ 对数据结构字符动态数组的实现.要使用 string,请在程序头添加: #include <string> using name ...

  9. C++string类知识点总结

    一.string的初始化 首先,为了在程序中使用string类型,必须包含头文件 <string>.如下: #include <string> 注意这里不是string.h,s ...

最新文章

  1. android 酷狗demo_Android仿酷狗旋转界面功能-自定义控件实现
  2. 手把手教你webpack4.x从零开始搭建vue项目
  3. vue项目在移动端(手机)调试
  4. 为下半年圣诞节提前准备素材模板,可临摹psd分层模板!
  5. 计算机基础知识_计算机基础知识汇总
  6. mysql查询未讲课教师_经典教师 学生 成绩sql面试题再次来袭3(附答案)
  7. @data注解_SpringBoot入门实践(七)-Spring-Data-JPA实现数据访问
  8. access数据库驱动的安装方法
  9. 东北大学计算机学院宿舍环境,软件学院二舍A区308寝室
  10. 202109-2 非零段划分
  11. DDR3内存技术原理
  12. 噪音消除小技巧--噪音匹配
  13. 100种乡村旅游盈利方式
  14. 读心术程序c语言流程图,无聊的时候写的读心术小程序
  15. Spring+Hibernate配置文件-applicationContext.xml设置
  16. 网页中播放flash视频
  17. Windows7 GNS3 模拟路由器成功PING通网外
  18. html5 语言购物车,基于html5 localStorage的购物车JS脚本详解
  19. 如何获取微信公众号文章ID?9步教你!
  20. 和一个北京黑出租车司机的对话

热门文章

  1. 怎么主动发起话题_为什么男生不愿意主动追求女生了?这或许是最终的核心原因...
  2. java io加速器,Java 日期操作
  3. java 场景处理,将黄瓜场景示例作为一个场景处理
  4. java界面化_java怎么实现图形化界面
  5. python的发展趋势图_用Python绘制趋势图
  6. sqliteorm的sync_schema介绍
  7. 数据vs.算法,究竟谁更重要
  8. 中国智慧VS西方智慧-看中国IT风云与IT产业怪状
  9. AVS 帧内预测模式的汇编优化
  10. springbootajaxhas been blocked by CORS policy: No ‘Access-Control-Allow-Origin