Namespaces
Variants

std::basic_string_view<CharT,Traits>:: find_last_of

From cppreference.net
constexpr size_type
find_last_of ( basic_string_view v, size_type pos = npos ) const noexcept ;
(1) (начиная с C++17)
constexpr size_type
find_last_of ( CharT ch, size_type pos = npos ) const noexcept ;
(2) (начиная с C++17)
constexpr size_type
find_last_of ( const CharT * s, size_type pos, size_type count ) const ;
(3) (начиная с C++17)
constexpr size_type
find_last_of ( const CharT * s, size_type pos = npos ) const ;
(4) (начиная с C++17)

Находит последний символ, равный одному из символов в заданной последовательности. Точный алгоритм поиска не указан. Поиск рассматривает только интервал [ 0 , pos ] . Если символ отсутствует в интервале, будет возвращено значение npos .

1) Находит последнее вхождение любого из символов v в данном представлении, заканчивающееся на позиции pos .
2) Эквивалентно find_last_of ( basic_string_view ( std:: addressof ( ch ) , 1 ) , pos ) .
3) Эквивалентно find_last_of ( basic_string_view ( s, count ) , pos ) .
4) Эквивалентно find_last_of ( basic_string_view ( s ) , pos ) .

Содержание

Параметры

v - представление для поиска
pos - позиция, на которой должен завершиться поиск
count - длина строки символов для поиска
s - указатель на строку символов для поиска
ch - символ для поиска

Возвращаемое значение

Позиция последнего вхождения любого символа из подстроки, или npos если такой символ не найден.

Сложность

O( size() * v. size() ) в худшем случае.

Пример

#include <string_view>
using namespace std::literals;
constexpr auto N = std::string_view::npos;
static_assert(
    5 == "delete"sv.find_last_of("cdef"sv) &&
      //       └────────────────────┘
    N == "double"sv.find_last_of("fghi"sv) &&
      //
    0 == "else"sv.find_last_of("bcde"sv, 2 /* позиция [0..2]: "els" */) &&
      //  └────────────────────────┘
    N == "explicit"sv.find_last_of("abcd"sv, 4 /* позиция [0..4]: "expli" */) &&
      //
    3 == "extern"sv.find_last_of('e') &&
      //     └────────────────────┘
    N == "false"sv.find_last_of('x') &&
      //
    0 == "inline"sv.find_last_of('i', 2 /* позиция [0..2]: "inl" */) &&
      //  └───────────────────────┘
    N == "mutable"sv.find_last_of('a', 2 /* позиция [0..2]: "mut" */) &&
      //
    3 == "namespace"sv.find_last_of("cdef", 3 /* позиция [0..3]: "name" */, 3 /* "cde" */) &&
      //     └─────────────────────────┘
    N == "namespace"sv.find_last_of("cdef", 3 /* позиция [0..3]: "name" */, 2 /* "cd" */)
);
int main() {}

Смотрите также

найти символы в представлении
(публичная функция-член)
найти последнее вхождение подстроки
(публичная функция-член)
найти первое вхождение символов
(публичная функция-член)
найти первое отсутствие символов
(публичная функция-член)
найти последнее отсутствие символов
(публичная функция-член)
найти последнее вхождение символов
(публичная функция-член std::basic_string<CharT,Traits,Allocator> )