关于string::size_type
来源:互联网 发布:java 双引号 编辑:程序博客网 时间:2024/04/29 02:23
size_type其实是string模板类定义的一种类型之一,它与size_of的用法相似,只是它根据存储的类型返回字符串的长度.对于 string具体化,将根据char返回字符串的长度,在这种情况下,size_type与size_of等效.size_of是一种无符号类型.
你说的 size_type 其实就是 unsigned int 类型 其实并不正确,它要看其存储的类型.
你说的 size_type 其实就是 unsigned int 类型 其实并不正确,它要看其存储的类型.
size_type实际上是做为解决string类设计上的严重失误而引入的。
size_type是在string类内定义的一个无符号整形类型,由于string类里很多方法的返回值都是size_type类型的,所以必须使用size_type进行类型声明。
如下:
string a= "abcdefg ";
string::size_type idx;
idx = a.find( "h "); //not found,return string::npos
if( idx == string::npos ) //check if not find
{
.....
}
由于npos为find返回的特殊值(-1),而不幸的是,size_type类型为unsigned int,所以
不同的编译器对npos的理解不同。
试想一下,用8字节来unsigned int 来表示-1和用4字节表示,值是完全不同的。
这可能是string类设计时的一个致命缺陷,为了兼容和可移植性,
特定义size_type类型,在不同编译器中,size_type的解释也不同,这样就做到了可移植。
0 0
- 关于string::size_type
- 关于string::size_type
- 关于string::size_type
- 关于string::size_type
- string::size_type
- 关于size_type
- vector<string>::size_type与string::size_type
- C++ string::size_type 类型
- c++ string::size_type详解
- C++ string::size_type 类型
- C++ Primer --- string::size_type
- string::size_type类型
- string::size_type类型
- C++ string::size_type 类型
- string::size_type类型
- C++ string::size_type 类型
- C++ string::size_type类型
- C++ string::size_type 类型
- C语言strtok()函数:字符串分割
- shutdown()
- memchr函数
- #define用法详解
- #define与typedef
- 关于string::size_type
- std::string::find() 和 std::string::npos
- EXTJS 中 anchor 的用法
- C++ 嵌套类使用(一)
- 高斯消元法求矩阵系数
- C++ 嵌套类使用(二)
- C++ 嵌套类使用(三)
- C++之内部类与外部类(嵌套类)及友元
- POJ 2503 Babelfish(Hash)