您的位置:首页 > 其它

学习笔记之string

2011-10-10 23:17 141 查看
本节主要讲了c++标准库里的string类型。在c++中有两大数据类型:一类是基本数据类型,像int、char、double等;另一类就是标准库里的抽象数据类型,像string、vector等,抽象数据类型是对数据(广义的数据)对象的更高级别的抽象,通过使用这些类型,程序员可以忽略他们的实现细节,将注意力更多的集中在如何更好地使用这些抽象数据类型。

string是一个类,使用的时候要包含标准库头文件#include<string>。其他的不细说了,下面主要讲一些细节问题。

1.string str;

str.size(); 该操作的返回值问题。学了这么久,今天才知道,他的返回值不是int型,而是string::size_type。(汗!之前直接把返回值赋给int型变量了)。他的定义是这样的:

class basic_string

{

typedef unsigned int size_type;

};

使用该类型有如下考虑:

a.由于字符串的长度是非负值,所以采用无符号数比采用有符号数表示范围增大一倍;

b.根据书上的叙述,采用size_type可以不受机器位数的限制,因为有的机器上int是16位的,有的是32的,这就限制了所能表示的虽大长度和程序的可移植性。但是如果从这条叙述来看,上面的定义似乎又是不对的,因为他还是与机器的位数相关的。有些疑惑!!!

2.第二个问题是:在使用strlen(str)时候,会出现错误,这是因为strlen()的参数是const char *,所以需要将str转化一下。正确使用方法是:strlen(str.c_str())

好了,今天就到这里了,希望能够坚持下去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: