首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

std:string:npos的值是多少?有定义吗?解决思路

2013-06-25 
std::string::npos的值是多少?有定义吗?如题: 据说是大于所有有效下标的一个值,那这个值有定义是多少吗?如

std::string::npos的值是多少?有定义吗?
如题:
 据说是大于所有有效下标的一个值,那这个值有定义是多少吗?

如果在程序中把-1作为它来用可以吗?
例如:

if(string.find() == -1)
{
cout <<"no found.";
}
[解决办法]
ISO C++03
21.3
...
static const size_type npos = -1;
...
相当于static_cast<size_type>(-1)。应该注意这里的size_type是allocator决定的无符号数。
LZ这么做可以,不过还是写成npos明确一点。

[解决办法]
-1,但是完全没有必要直接和这个-1进行比较。
[解决办法]
永远不要依赖于npos的实际值。

[解决办法]
不同的编译系统,NOPS的值是不同的,通常为-1。最好把它当作常量来使用。
[解决办法]
我觉得还是直接用npos比较好。。
[解决办法]


      // NB: This is an unsigned type, and thus represents the maximum
      // size that the allocator can hold.
      ///  Value returned by various member functions when they fail.
      static const size_typenpos = static_cast<size_type>(-1);


自己右键 就可以查头文件
看头文件里的注解
//注:这是一个无符号的类型,是tring容易可容纳的最大大小。


[解决办法]
msdn中是这样定义的:static const size_type npos = -1;

热点排行