为了账号安全,请及时绑定邮箱和手机立即绑定

c++ 关于.size()

c++ 关于.size()

C++
ABOUTYOU 2018-07-29 17:17:00
string a;a.size() 返回什么类型vector<string>a(5);a.size() 返回什么类型vector<int>a(5)a.size() 返回什么类型个人觉得分别是:string::size_type类型 ?int类型?int类型?我要计算string中的元素个数用什么?是用sizeof()吗?还能用别的吗?string::size_type内嵌类型能转成int吗?我快晕了,救救我。。。还有读取string中的某个字符呢?怎么做?
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

string a;
a.size() 如果没有定义size_type,返回的是无符号整型,如果定义了size_type,则返回的是定义了的size_type类型,详细见下文

vector<string>a(5);
a.size() 返回的也是无符号整型

vector<int>a(5)
a.size() 返回的还是无符号整型

string::size_type是string对象的一个属性,可以用于定义string的size类型,而由于string::size_type是无符号型,则它可以存储的长度是有符号型的两倍。int类型变量最大只能存储32767个字符的string对象,如果用string来读一个文本文件,轻易就会多于32767个字符。为了避免溢出,保存一个string对象size的最安全的方法就是使用标准库类型string:: size_type。

计算string中的元素个数用size()就可以了。

读取string中的某个字符可以用下标进行操作。
例:
string s = "hello";
s[0] 就是字符串的第一个字符, s[1] 就表示第二个字符(如果有的话),而 s[s.size() - 1] 则表示 s 的最后一个字符。

用以下方法依次读取s中的字符
for (string::size_type i = 0; i != s.size(); ++i)
cout << s[i] << endl;

查看完整回答
反对 回复 2018-08-02
?
jeck猫

TA贡献1909条经验 获得超7个赞

查下msdn就知道了:
查size method:
.size大多是size_type(string和vector都是,还有其他很多)
查size_type typedef:
typedef size_t size_type;
再查size_t type:
size_t unsigned integer Result of sizeof operator.
最终其实是uint的

个数函数:(都是msdn复制下来的, 自己找吧)
Returns the number of characters in the string.
number string-length(string)

查看完整回答
反对 回复 2018-08-02
  • 2 回答
  • 0 关注
  • 3631 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信