std::basic_string_view<CharT,Traits>::find_last_of
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 /* pos [0..2]: "els" */) &&
// └────────────────────────┘
N == "explicit"sv.find_last_of("abcd"sv, 4 /* pos [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 /* pos [0..2]: "inl" */) &&
// └───────────────────────┘
N == "mutable"sv.find_last_of('a', 2 /* pos [0..2]: "mut" */) &&
//
3 == "namespace"sv.find_last_of("cdef", 3 /* pos [0..3]: "name" */, 3 /* "cde" */) &&
// └─────────────────────────┘
N == "namespace"sv.find_last_of("cdef", 3 /* pos [0..3]: "name" */, 2 /* "cd" */)
);
int main() {}
См. также
| находит символы в представлении (открытая функция-член) |
|
| находит последнее вхождение подстроки (открытая функция-член) |
|
| находит первое вхождение символов (открытая функция-член) |
|
| находит первое отсутствие символов (открытая функция-член) |
|
| находит последнее отсутствие символов (открытая функция-член) |
|
| находит последнее вхождение символов (открытая функция-член std::basic_string<CharT,Traits,Allocator>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/basic_string_view/find_last_of