本文档http://www.cplusplus.com/reference/string/string/npos/已经说过了 std :: string :: npos是-1。但是当我打印出价值时,却没有。这个价值架构是否依赖?
我的测试很简单
std::cout << std::string::npos << std::endl;
输出
4294967295
答案 0 :(得分:5)
从您提供的链接:
此常量定义为值-1,由于size_t是无符号整数类型,因此它是此类型的最大可表示值。
答案 1 :(得分:1)
此常量的定义值为-1,因为size_t是 无符号整数类型,它是最大可能的代表 这种类型的价值。
他们说an unsigned integral type
答案 2 :(得分:0)
要尝试输出(size_t)-1
的结果,请添加其他答案。您可以验证此值是否与std::string::npos
相同。
答案 3 :(得分:0)
根据C ++标准,标准类npos
的成员std::basic_string
按以下方式声明
static const size_type npos = -1;
另一方面,类型名称size_type
对应于某些无符号整数类型。所以你得到的是-1的内部表示,解释为无符号值。这意味着符号位被视为值位。