std::basic_string<CharT,Traits,Allocator>:: find_last_of
|
size_type find_last_of
(
const
basic_string
&
str,
size_type pos = npos ) const ; |
(1) |
(aucune exception depuis C++11)
(constexpr depuis C++20) |
|
size_type find_last_of
(
const
CharT
*
s,
size_type pos, size_type count ) const ; |
(2) | (constexpr depuis C++20) |
|
size_type find_last_of
(
const
CharT
*
s, size_type pos
=
npos
)
const
;
|
(3) | (constexpr depuis C++20) |
|
size_type find_last_of
(
CharT ch, size_type pos
=
npos
)
const
;
|
(4) |
(aucune exception depuis C++11)
(constexpr depuis C++20) |
|
template
<
class
StringViewLike
>
size_type
|
(5) |
(depuis C++17)
(constexpr depuis C++20) |
Trouve le dernier caractère égal à l'un des caractères dans la séquence de caractères donnée. L'algorithme de recherche exact n'est pas spécifié. La recherche ne considère que l'intervalle
[
0
,
pos
]
. Si aucun des caractères dans la séquence de caractères donnée n'est présent dans l'intervalle,
npos
sera retourné.
[
s
,
s
+
count
)
. Cette plage peut inclure des caractères nuls.
[
s
,
s
+
Traits
::
length
(
s
)
)
n'est pas un
intervalle valide
, le comportement est indéfini.
std:: basic_string_view < CharT, Traits >> est true et std:: is_convertible_v < const StringViewLike & , const CharT * > est false .
Dans tous les cas, l'égalité est vérifiée en appelant Traits::eq .
Table des matières |
Paramètres
| str | - | chaîne identifiant les caractères à rechercher |
| pos | - | position à laquelle la recherche doit se terminer |
| count | - | longueur de la chaîne de caractères identifiant les caractères à rechercher |
| s | - | pointeur vers une chaîne de caractères identifiant les caractères à rechercher |
| ch | - | caractère à rechercher |
| t | - | objet (convertible en std::basic_string_view ) identifiant les caractères à rechercher |
Valeur de retour
Position du caractère trouvé ou npos si aucun caractère correspondant n'est trouvé.
Exceptions
Si une exception est levée pour quelque raison que ce soit, cette fonction n'a aucun effet ( garantie forte de sûreté face aux exceptions ).
Exemple
#include <iostream> #include <string> int main() { const std::string path = "/root/config"; auto const pos = path.find_last_of('/'); const auto leaf = path.substr(pos + 1); std::cout << leaf << '\n'; }
Sortie :
config
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement correct |
|---|---|---|---|
| LWG 141 | C++98 | la surcharge (1) ne pouvait retourner que npos si pos >= size ( ) |
la plage de recherche est
[
0
,
size
(
)
)
dans ce cas
|
| LWG 847 | C++98 | il n'y avait aucune garantie de sécurité des exceptions | garantie de sécurité forte des exceptions ajoutée |
| LWG 2064 | C++11 | les surcharges (3,4) étaient noexcept | supprimé |
| LWG 2946 | C++17 | la surcharge (5) causait une ambiguïté dans certains cas | évité en la rendant template |
| P1148R0 |
C++11
C++17 |
noexcept pour les surcharges
(4,5)
a été
accidentellement supprimé par LWG2064/LWG2946 |
restauré |
Voir aussi
|
trouve la première occurrence de la sous-chaîne donnée
(fonction membre publique) |
|
|
trouve la dernière occurrence d'une sous-chaîne
(fonction membre publique) |
|
|
trouve la première occurrence de caractères
(fonction membre publique) |
|
|
trouve la première absence de caractères
(fonction membre publique) |
|
|
trouve la dernière absence de caractères
(fonction membre publique) |
|
|
trouve la dernière occurrence de caractères
(fonction membre publique de
std::basic_string_view<CharT,Traits>
)
|