std::basic_string<CharT,Traits,Allocator>::operator[]
Depuis fr.cppreference.net
CharT& operator[]( size_type pos );
|
(1) | (constexpr depuis C++20) |
const CharT& operator[]( size_type pos ) const;
|
(2) | (constexpr depuis C++20) |
Retourne une référence vers le caractère à la position spécifiée pos si pos < size(), ou si pos == size() :
1)
|
Le comportement est indéfini. |
(jusqu'à C++11) |
|
Retourne une référence vers |
(depuis C++11) |
2) Retourne une référence vers
CharT().|
Si |
(jusqu'à C++26) |
|
Si
|
(depuis C++26) |
Paramètres
| pos | - | position du caractère à retourner |
Valeur de retour
1)
*
(
begin
(
)
+
pos
)
si
pos
<
size
(
)
, ou une référence à
CharT
(
)
si
pos
==
size
(
)
(depuis C++11)
.
2)
*
(
begin
(
)
+
pos
)
si
pos
<
size
(
)
, ou une référence à
CharT
(
)
si
pos
==
size
(
)
.
Complexité
Constante.
Exemple
Exécuter ce code
#include <iostream> #include <string> int main() { const std::string e("Exemplar"); for (unsigned i = e.length() - 1; i != 0; i /= 2) std::cout << e[i]; std::cout << '\n'; const char* c = &e[0]; std::cout << c << '\n'; // afficher en tant que chaîne C // Modifier le dernier caractère de s en 'y' std::string s("Exemplar "); s[s.size() - 1] = 'y'; // équivalent à s.back() = 'y'; std::cout << s << '\n'; }
Sortie :
rmx Exemplar Exemplary
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 259 | C++98 |
la surcharge
(
1
)
pouvait retourner une lvalue const
data ( ) [ pos ] , ce qui était mal formé |
modifié pour retourner
* ( begin ( ) + pos ) |
| LWG 2475 | C++11 |
si
pos
==
size
(
)
, le comportement de modification de
l'objet référencé par la référence retournée était indéfini |
bien défini si
modifié en CharT ( ) |
Voir aussi
|
accède au caractère spécifié avec vérification des limites
(fonction membre publique) |
|
|
(
DR*
)
|
accède au premier caractère
(fonction membre publique) |
|
(
DR*
)
|
accède au dernier caractère
(fonction membre publique) |
|
accède au caractère spécifié
(fonction membre publique de
std::basic_string_view<CharT,Traits>
)
|