std::basic_string<CharT,Traits,Allocator>:: at
|
CharT
&
at
(
size_type pos
)
;
|
(1) | (constexpr depuis C++20) |
|
const
CharT
&
at
(
size_type pos
)
const
;
|
(2) | (constexpr depuis C++20) |
Retourne une référence au caractère à la position spécifiée pos . Une vérification des limites est effectuée, une exception de type std::out_of_range sera levée en cas d'accès invalide.
Table des matières |
Paramètres
| pos | - | position du caractère à retourner |
Valeur de retour
Référence au caractère demandé.
Exceptions
Lance std::out_of_range si pos >= size ( ) .
Si une exception est levée pour quelque raison que ce soit, ces fonctions n'ont aucun effet ( strong exception safety guarantee ).
Complexité
Constante.
Exemple
#include <iostream> #include <stdexcept> #include <string> int main() { std::string s("message"); // pour la capacité s = "abc"; s.at(2) = 'x'; // OK std::cout << s << '\n'; std::cout << "string size = " << s.size() << '\n'; std::cout << "string capacity = " << s.capacity() << '\n'; try { // Cela va lancer une exception car l'offset demandé est supérieur à la taille actuelle. s.at(3) = 'x'; } catch (std::out_of_range const& exc) { std::cout << exc.what() << '\n'; } }
Sortie possible :
abx string size = 3 string capacity = 7 basic_string::at
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 corrigé |
|---|---|---|---|
| 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 2207 | C++98 | le comportement était indéfini si pos >= size ( ) est true | lève toujours une exception dans ce cas |
Voir aussi
|
accède au caractère spécifié
(fonction membre publique) |
|
|
accède au caractère spécifié avec vérification des limites
(fonction membre publique de
std::basic_string_view<CharT,Traits>
)
|