Namespaces
Variants

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

De fr.cppreference.net
 
 
 
std::basic_string_view
 
constexpr size_type
    find_last_of( basic_string_view v, size_type pos = npos ) const noexcept;
(1) (depuis C++17)
constexpr size_type
    find_last_of( CharT ch, size_type pos = npos ) const noexcept;
(2) (depuis C++17)
constexpr size_type
    find_last_of( const CharT* s, size_type pos, size_type count ) const;
(3) (depuis C++17)
constexpr size_type
    find_last_of( const CharT* s, size_type pos = npos ) const;
(4) (depuis C++17)

Recherche le dernier caractère égal à l'un des caractères de la séquence de caractères donnée. L'algorithme de recherche exact n'est pas spécifié. La recherche considère uniquement l'intervalle [0pos]. Si le caractère n'est pas présent dans l'intervalle, npos sera retourné.

1) Recherche la dernière occurrence de l'un des caractères de v dans cette vue, se terminant à la position pos.
2) Équivalent à find_last_of(basic_string_view(std::addressof(ch), 1), pos).
3) Équivalent à find_last_of(basic_string_view(s, count), pos).
4) Équivalent à find_last_of(basic_string_view(s), pos).

Paramètres

v - vue à rechercher
pos - position à laquelle la recherche doit se terminer
count - longueur de la chaîne de caractères à rechercher
s - pointeur vers une chaîne de caractères à rechercher
ch - caractère à rechercher

Valeur de retour

Position de la dernière occurrence de n'importe quel caractère de la sous-chaîne, ou npos si aucun caractère correspondant n'est trouvé.

Complexité

O( size() * v. size() ) au pire.

Exemple

#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() {}

Voir aussi

rechercher des caractères dans la vue
(fonction membre publique)
rechercher la dernière occurrence d'une sous-chaîne
(fonction membre publique)
rechercher la première occurrence de caractères
(fonction membre publique)
rechercher la première absence de caractères
(fonction membre publique)
rechercher la dernière absence de caractères
(fonction membre publique)
rechercher la dernière occurrence de caractères
(fonction membre publique de std::basic_string<CharT,Traits,Allocator> )