c++ 关于.size()

来源:百度知道 编辑:UC知道 时间:2024/05/27 23:49:06
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中的某个字符呢?怎么做?

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;

查下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.
最终其