代码之家  ›  专栏  ›  技术社区  ›  code

字符串的替代项::npos

  •  4
  • code  · 技术社区  · 7 年前

    在一个场景中 find() 自定义类的方法返回自定义数据结构中元素的索引位置,是否有比返回 string::npos ?

    的返回类型 查找() 方法是 size_t 。所以我需要它是size\t类型。

    字符串::NPO -1 ,它是的最大值 unsigned long long 。虽然这很有效,但我的问题是命名: string 。我不想和你有任何联系 一串 。是否有任何内置的更通用的名称用于这种常见和通用的场景,并且与 大小\u t ?

    1 回复  |  直到 7 年前
        1
  •  0
  •   codesniffer    7 年前

    如果自定义类希望从其find函数返回size\t,那么只需定义自己的size\t常量,供使用者引用为“未找到”。例如(伪代码,未验证编译):

    class Foo
    {
        public:
            static const size_t npos = static_cast<size_t>(-1);
    
            size_t find(/*thing to find here*/) const
            {
                // logic to search for element
    
                // element not found
                return(npos);
            }
    };
    

    然后消费者可以将其类似于std::string:

    Foo foo;
    size_t pos = foo.find(/*thing to find here*/);
    if(pos != Foo::npos)
    {
        // Element found
    }