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) | (since C++17) |
constexpr
size_type find_last_of( CharT ch, size_type pos = npos ) const noexcept;
|
(2) | (since C++17) |
constexpr
size_type find_last_of( const CharT* s, size_type pos, size_type count ) const;
|
(3) | (since C++17) |
constexpr
size_type find_last_of( const CharT* s, size_type pos = npos ) const;
|
(4) | (since 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 <iostream>
#include <string_view>
int main()
{
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" */)
);
std::cout << "All tests passed.\n";
}Вывод:
All tests passed.
См. также
| поиск символов в представлении (публичный член-функция) |
|
| поиск последнего вхождения подстроки (публичный член-функция) |
|
| поиск первого вхождения символов (публичный член-функция) |
|
| поиск первого отсутствия символов (публичный член-функция) |
|
| поиск последнего отсутствия символов (публичный член-функция) |
|
| поиск последнего вхождения символов (публичный член-функция std::basic_string<CharT,Traits,Allocator>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/basic_string_view/find_last_of