c++ string::npos 是调用字符串类吗?

标签 c++ string

我是 C++ 的新手,刚从 Java 转过来,对此感到疑惑:

        pos = result.find(remove[i]);  
        if (pos == string::npos)

它是在调用字符串“superclass”吗?我很困惑,如果它正在调用类本身来访问常量“npos”,如果我在我的函数中声明了几个字符串变量,它怎么知道它是类的哪个实例?

最佳答案

npos 未绑定(bind)到实例,而是绑定(bind)到类本身。它是一个static 成员。 Java 中也有 static 成员。

21.4 类模板basic_string [basic.string]

[...]

namespace std {
template<class charT, class traits = char_traits<charT>,
class Allocator = allocator<charT> >
class basic_string {
  public:
    //...
    static const size_type npos = -1;
    //...
};

std::stringbasic_string特化

关于c++ string::npos 是调用字符串类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266701/

相关文章:

c++ - G++ 忽略 _Pragma 诊断被忽略

javascript - 如何在 Java 脚本中查找和计算字符串中的元音并以数组形式返回它们?

c++ - 哪种数据结构更适合 std 字符串数组

C++ 静态构造函数返回一个容器

c++ - 在 C++ 中迭代 .bmp 的像素

c++ - 具有可变多维 initializer_list 的构造函数

c# - 用 '\r\n' 分割文本

Python str.format() --- 传入列表,输出列表

c# - 在 C# 中不使用 String.Split 反转句子的单词

c++ - 将char添加到字符串与将字符串添加到char之间的区别