猿问

c++ 关于.size()

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中的某个字符呢?怎么做?

ABOUTYOU
浏览 3633回答 2
2回答

呼如林

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;

jeck猫

查下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)
随时随地看视频慕课网APP
我要回答