gpt4 book ai didi

c++ - 如何使用字符串find_first_of缓冲区形式(size_t n参数)

转载 作者:行者123 更新时间:2023-12-02 10:24:12 35 4
gpt4 key购买 nike

我了解find_first_of其他形式的用法,但终生无法弄清(或找到答案)如何使用此函数的第三种形式(缓冲区?)。 “size_t n”参数有什么作用?文档指出,这是要搜索的字符值的数量,但这意味着什么?字符串中出现的次数,要搜索的不同字符的数量?从原始字符串还是要搜索的字符串开始的位置?

最佳答案

取自 std::string::find_first_of() of cplusplus.com,因为该声明似乎是您要搜索的声明...但是请相信我,不要从那里获取文档...使用其他可靠的站点(例如cppreference)可以清楚地定义每个函数和参数的作用。 ..

该站点的成员函数的第三个声明是
来自cppreference's std::find_first_of() 的第二个声明,来自cppreference的函数的声明如下:

size_type find_first_of( const CharT* s, size_type pos, size_type count ) const;

Note:

Before even going as far to know how find_first_of is declared, we must know how it works...

Taken for en.cppreference.com definition of the find_first_of function:

"Finds the first character equal to one of the characters in the given character sequence. The search considers only the interval [pos, size()). If the character is not present in the interval, npos will be returned."



可以解释为以下内容:

1)认为这里的缓冲区就像一个字符数组,此函数的作用是单独检查字符串中的所有字符...

2)换句话说,使用字符串的所有字符分别遍历缓冲区...

3)第三个参数,只是一个需要找到长度的参数...主要情况是当您懒于执行 std::string::substr()时...

例如: some_str.find_first_of("this_will_be_found", 10, 5) ...

该行将检查所有单个字符,直到仅5个字符,因为count是 5 ( 't''h''i''s''_' ...那里,...其中5个!)位于 some_str 缓冲区中索引10 ...(请注意,索引从0开始,而不是1 ...)

现在,为了不让您感到无聊,这是声明的说明(最后!):

在这里,find_first_of是一个重载函数,其给定的声明之一如上所述。

1) size_type只不过是一个无符号整数,通常用作大小类型,因为无符号整数不能具有负值,除了零(0)之外,它是一个正负数,仍然允许...

2) const CharT* s显然是 const char* s,因为字符串是 std::string(字符的字符串缓冲区,对于宽字符串, wchar_t则是 unsigned shortchar而不是 std::wstring)...

3) pos就像您可能已经猜到的那样,是函数应开始查找的起点...

4) count也是一个无符号的int(一个不允许小于零的值,即为负数...),它只是一个参数,它定义了要在缓冲区中查找多少个字符...因为find_first_of搜索所有字符单独,而不是一次缓冲区...

5)最后,此函数是一个常量函数,它具有 const说明符,并且不会参与修改任何类型的变量...期望 mutable s ...

关于c++ - 如何使用字符串find_first_of缓冲区形式(size_t n参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52895534/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com