24 Strings library [strings]

24.4 String view classes [string.view]

24.4.2 Class template basic_­string_­view [string.view.template]

24.4.2.7 Searching [string.view.find]

В этом разделе описываются basic_­string_­view функции - члены с именем find, rfind, find_­first_­of, find_­last_­of, find_­first_­not_­of, и find_­last_­not_­of.

Функции-члены в этом разделе O(size() * str.size()) в худшем случае сложны, хотя реализациям рекомендуется работать лучше.

Каждая функция-член формы

constexpr return-type F(const charT* s, size_type pos);

эквивалентно return F(basic_­string_­view(s), pos);

Каждая функция-член формы

constexpr return-type F(const charT* s, size_type pos, size_type n);

эквивалентно return F(basic_­string_­view(s, n), pos);

Каждая функция-член формы

constexpr return-type F(charT c, size_type pos);

эквивалентно return F(basic_­string_­view(&c, 1), pos);

constexpr size_type find(basic_string_view str, size_type pos = 0) const noexcept;

Позвольте xpos быть самой низкой позицией, если возможно, такой, что выполняются следующие условия:

  • pos <= xpos

  • xpos + str.size() <= size()

  • traits​::​eq(at(xpos + I), str.at(I)) для всех элементов I строки, на которую ссылается str.

Effects: Определяет xpos.

Returns: xpos если функция может определить такое значение для xpos. В противном случае возвращается npos.

constexpr size_type rfind(basic_string_view str, size_type pos = npos) const noexcept;

Позвольте xpos быть высшей позицией, если возможно, такой, что выполняются следующие условия:

  • xpos <= pos

  • xpos + str.size() <= size()

  • traits​::​eq(at(xpos + I), str.at(I)) для всех элементов I строки, на которую ссылается str.

Effects: Определяет xpos.

Returns: xpos если функция может определить такое значение для xpos. В противном случае возвращается npos.

constexpr size_type find_first_of(basic_string_view str, size_type pos = 0) const noexcept;

Позвольте xpos быть самой низкой позицией, если возможно, такой, что выполняются следующие условия:

  • pos <= xpos

  • xpos < size()

  • traits​::​eq(at(xpos), str.at(I)) для некоторого элемента I строки, на которую ссылается str.

Effects: Определяет xpos.

Returns: xpos если функция может определить такое значение для xpos. В противном случае возвращается npos.

constexpr size_type find_last_of(basic_string_view str, size_type pos = npos) const noexcept;

Позвольте xpos быть высшей позицией, если возможно, такой, что выполняются следующие условия:

  • xpos <= pos

  • xpos < size()

  • traits​::​eq(at(xpos), str.at(I)) для некоторого элемента I строки, на которую ссылается str.

Effects: Определяет xpos.

Returns: xpos если функция может определить такое значение для xpos. В противном случае возвращается npos.

constexpr size_type find_first_not_of(basic_string_view str, size_type pos = 0) const noexcept;

Позвольте xpos быть самой низкой позицией, если возможно, такой, что выполняются следующие условия:

  • pos <= xpos

  • xpos < size()

  • traits​::​eq(at(xpos), str.at(I)) для ни одного элемента I строки, на которую ссылается str.

Effects: Определяет xpos.

Returns: xpos если функция может определить такое значение для xpos. В противном случае возвращается npos.

constexpr size_type find_last_not_of(basic_string_view str, size_type pos = npos) const noexcept;

Позвольте xpos быть высшей позицией, если возможно, такой, что выполняются следующие условия:

  • xpos <= pos

  • xpos < size()

  • traits​::​eq(at(xpos), str.at(I)) для ни одного элемента I строки, на которую ссылается str.

Effects: Определяет xpos.

Returns: xpos если функция может определить такое значение для xpos. В противном случае возвращается npos.