C++ string::size_type
从逻辑上讲,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;
运行结果:
C++ string::size_type的更多相关文章
- C++ string::size_type 类型【转】
int main() { string str("Hello World!\n"); cout << "The size of " << ...
- C语言 string::size_type类型
string::size_type类型 从逻辑上来讲,size()成员函数似乎应该返回整型数值,或如2.2节“建议”中所述的无符号整数.但事实上,size操作返回的是string::size_type ...
- string::size_type类型
string::size_type类型 对于string中的size函数,size函数返回的是string对象的字符个数(长度),我们知道,对size()来说,返回一个int或者是一个unsigned ...
- 关于string::size_type
size_type其实是string模板类定义的一种类型之一,它与size_of的用法相似,只是它根据存储的类型返回字符串的长度.对于 string具体化,将根据char返回字符串的长度,在这种情况下 ...
- string::size_type 页73 size_t 页90
异同点: size_t size_type sizeof(XXX)所得到的结果的类型就是 string类类型和vector类类型定义的类型,string的size操作返回来的是string::size ...
- C++ <string> 里面的size_type
string::size_type string的 str.size() 返回值是一个unsigned,实际上返回的是size_type类型的值. string类和其他的大多数标准库类型都定义了几套配 ...
- 关于vector.size()和string.length() 的返回类型 size_type
今天写循环的时候碰到一个问题,发现:string.length()返回的类型是size_type.它是unsigned 类型.string::size_type它在不同的机器上,长度是可以不同的,并非 ...
- c/c++ string
string类的定义.操作. #include<iostream> #include<string> using namespace std; int main() { // ...
- 把《c++ primer》读薄(3-1 标准库string类型初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1:养成一个好习惯,在头文件中只定义确实需要的东西 using namespace std; //建议需要什么再using声 ...
随机推荐
- 51nod 1405 树的距离之和(dfs)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1405 题意: 思路: 先求出所有点到根节点的距离,需要维护每棵子树的大小 ...
- json扩展
using Newtonsoft.Json.Linq; namespace Utility { public static class JsonExt { /// <summary> // ...
- WinForm 中 comboBox控件数据绑定
一.IList 现在我们直接创建一个List集合,然后绑定 IList<string> list = new List<string>(); list.Add("11 ...
- P1330 封锁阳光大学
传送门 思路: 依题意可知,在图中的每一条边有且只有一个点被选中(阻止老曹刷街),那么就可以对其采取二分图染色,一条边中:一个点为黑色,另一个点为白色:如果一条边中的两个端点的颜色相同,则说明无解,输 ...
- confirm("确定要删除吗?") _详解
具体代码如下: html代码: <div class="deletes">删除</div> js代码: <script type="text ...
- Qt5.QString传参数
1.函数传参,如果是 QString&类型 的话,不能直接 传入 char* 类型的参数,若是声明成 const QString&类型 的话,就可以 解释:应该是 函数调用的时候 编译 ...
- [原][unreal][UE][spark]分析unreal engine 虚幻引擎的粒子编辑器:Cascade
参考:https://www.raywenderlich.com/270-unreal-engine-4-particle-systems-tutorial (使用了一个飞机射击游戏的粒子来展示,全英 ...
- Centos 7系统挂载NTFS格式移动硬盘
有些时候做大数据量迁移时,为了快速迁移大数据,有可能在Linux服务器上临时挂载NTFS格式的移动硬盘, 一般情况下,linux是识别不了NTFS格式移动硬盘的(需要重编译Linux核心才能,加挂NT ...
- 聊聊 Nginx 的反向代理
背景 最近在优化服务基础设施这块,正好有时间写一下Nginx的体会.相信大家都听说过反向代理,一提到反向代理一定会想到Nginx.什么你没听过Nginx?那么你一定听说过Apache吧!Apache是 ...
- 温馨小程序前端布局Flex
伸缩容器支持的属性有: 1,display 2,flex-direction 3,flex-wrap 4,flex-flow 5,justify-content 6,align-items 7,ali ...