[string.view.find] (original) (raw)
27 Strings library [strings]
27.3 String view classes [string.view]
27.3.3 Class template basic_string_view [string.view.template]
27.3.3.9 Searching [string.view.find]
Member functions in this subclause have complexity at worst, although implementations should do better.
Let F be one offind,rfind,find_first_of,find_last_of,find_first_not_of, andfind_last_not_of.
- Each member function of the formconstexpr return-type F(const charT* s, size_type pos) const;has effects equivalent to: return F(basic_string_view(s), pos);
- Each member function of the formconstexpr return-type F(const charT* s, size_type pos, size_type n) const;has effects equivalent to: return F(basic_string_view(s, n), pos);
- Each member function of the formconstexpr return-type F(charT c, size_type pos) const noexcept;has effects equivalent to: return F(basic_string_view(addressof(c), 1), pos);
constexpr size_type find(basic_string_view str, size_type pos = 0) const noexcept;
Let xpos be the lowest position, if possible, such that the following conditions hold:
- pos <= xpos
- xpos + str.size() <= size()
- traits::eq(data_[xpos + I], str[I]) for all elements I of the string referenced by str.
Effects: Determines xpos.
Returns: xpos if the function can determine such a value for xpos.
Otherwise, returns npos.
constexpr size_type rfind(basic_string_view str, size_type pos = npos) const noexcept;
Let xpos be the highest position, if possible, such that the following conditions hold:
- xpos <= pos
- xpos + str.size() <= size()
- traits::eq(data_[xpos + I], str[I]) for all elements I of the string referenced by str.
Effects: Determines xpos.
Returns: xpos if the function can determine such a value for xpos.
Otherwise, returns npos.
constexpr size_type find_first_of(basic_string_view str, size_type pos = 0) const noexcept;
Let xpos be the lowest position, if possible, such that the following conditions hold:
- pos <= xpos
- xpos < size()
- traits::eq(data_[xpos], str[I]) for some element I of the string referenced by str.
Effects: Determines xpos.
Returns: xpos if the function can determine such a value for xpos.
Otherwise, returns npos.
constexpr size_type find_last_of(basic_string_view str, size_type pos = npos) const noexcept;
Let xpos be the highest position, if possible, such that the following conditions hold:
- xpos <= pos
- xpos < size()
- traits::eq(data_[xpos], str[I]) for some element I of the string referenced by str.
Effects: Determines xpos.
Returns: xpos if the function can determine such a value for xpos.
Otherwise, returns npos.
constexpr size_type find_first_not_of(basic_string_view str, size_type pos = 0) const noexcept;
Let xpos be the lowest position, if possible, such that the following conditions hold:
- pos <= xpos
- xpos < size()
- traits::eq(data_[xpos], str[I]) for no element I of the string referenced by str.
Effects: Determines xpos.
Returns: xpos if the function can determine such a value for xpos.
Otherwise, returns npos.
constexpr size_type find_last_not_of(basic_string_view str, size_type pos = npos) const noexcept;
Let xpos be the highest position, if possible, such that the following conditions hold:
- xpos <= pos
- xpos < size()
- traits::eq(data_[xpos], str[I]) for no element I of the string referenced by str.
Effects: Determines xpos.
Returns: xpos if the function can determine such a value for xpos.
Otherwise, returns npos.