C++学习笔记26 size()、length()等函数的返回值的问题
来源:互联网 发布:汉斯季默 知乎 编辑:程序博客网 时间:2024/05/06 19:30
c++ string类length()、size()等函数返回值属于无符号数
首先看一个例子
string s = "";for(int i = 0; i < s.length() - 1; ++i){ cout << "s.length = " <<s.length() << endl; break;}
输出结果:
s.length = 0
string类的length()或者size()函数返回的是unsigned integer(无符号数)类型。而用在for循环时,正常不会出错,但作为判断条件时,当s.length()等于0时,s.length()-1 不等于 -1
看下面的例子:
string s = "";for(int i = 0; i < s.length() - 1; ++i){ cout << "s.length - 1 = " << s.length()-1 << endl; break;}
输出结果:
s.length()-1 = 4294967295
可以将例2中代码改为如下,强制类型转换一下。
string s = "";for(int i = 0; i < (int)s.length() - 1; ++i){ cout << "(int)s.length - 1 = " << s.length()-1 << endl; break;}
输出结果:
(int)s.length - 1 = -1
总结:string类的length()函数和size()函数一定要注意返回的是无符号数,当出现string对象length为0,对于string对象的操作更要注意,以防出错。
阅读全文
0 0
- C++学习笔记26 size()、length()等函数的返回值的问题
- string 中的 length函数 和size函数 返回值问题
- matlab的length函数和size函数
- MATLAB的size(),length(),ndims()函数
- MATLAB的size(),length(),ndims()函数
- MATLAB的size(),length(),ndims()函数
- size和length的区别(C++)
- .length,.length(),size()的区别
- 关于oracle length()函数的问题 笔记
- 用C++的string::size()和string::length()返回值做比较
- Java中的 length、length()、size() 的区别
- java length,length()和size()的用法
- JAVA中length、length()、size()的区别
- Java中的length、length()、size的用法
- .length .length() .size()的使用方法和区别
- java中length,length(),size()的…
- Java中length,length(),size()的区别
- length,length()以及size()的区别
- 嵌套管程锁死
- Android Camera2 Opengles2.0 实时滤镜(冷暖色/放大镜/模糊/美颜)
- 获取<a>标签点击事件的当前对象,改变文本值
- 浅谈智能·层次感
- Android客户端性能优化(魅族资深工程师毫无保留奉献)
- C++学习笔记26 size()、length()等函数的返回值的问题
- count distinct是如何实现的
- builder模式实例
- Django+uwgis+nginx部署
- Slipped Conditions
- 这些改成中文名的前端框架,你还能认识几个?
- Luogu2831/UOJ265[NOIP2016D2T3] 愤怒的小鸟【状压DP】
- 第八章 Nginx服务器的缓存机制【笔记】
- opencv学习——画轮廓