std::basic_string<CharT,Traits,Allocator>::operator[]
De es.cppreference.net
CharT& operator[]( size_type pos );
|
(1) | (constexpr desde C++20) |
const CharT& operator[]( size_type pos ) const;
|
(2) | (constexpr desde C++20) |
Devuelve una referencia al carácter en la ubicación especificada pos si pos < size(), o si pos == size():
1)
|
El comportamiento no está definido. |
(hasta C++11) |
|
Devuelve una referencia a |
(desde C++11) |
2) Devuelve una referencia a
CharT().|
Si |
(hasta C++26) |
|
Si
|
(desde C++26) |
Parámetros
| pos | - | posición del carácter a devolver |
Valor de retorno
1)
*
(
begin
(
)
+
pos
)
si
pos
<
size
(
)
, o una referencia a
CharT
(
)
si
pos
==
size
(
)
(desde C++11)
.
2)
*
(
begin
(
)
+
pos
)
si
pos
<
size
(
)
, o una referencia a
CharT
(
)
si
pos
==
size
(
)
.
Complejidad
Constante.
Ejemplo
Ejecutar este código
#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'; // imprimir como cadena C // Cambiar el último carácter de s por una 'y' std::string s("Exemplar "); s[s.size() - 1] = 'y'; // equivalente a s.back() = 'y'; std::cout << s << '\n'; }
Salida:
rmx Exemplar Exemplary
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 259 | C++98 |
la sobrecarga
(
1
)
podría devolver un lvalue const
data ( ) [ pos ] , lo cual estaba mal formado |
cambiado para devolver
* ( begin ( ) + pos ) |
| LWG 2475 | C++11 |
si
pos
==
size
(
)
, el comportamiento de modificar el
objeto referenciado por la referencia devuelta no estaba definido |
bien definido si
modificado a CharT ( ) |
Véase también
|
accede al carácter especificado con verificación de límites
(función miembro pública) |
|
|
(
DR*
)
|
accede al primer carácter
(función miembro pública) |
|
(
DR*
)
|
accede al último carácter
(función miembro pública) |
|
accede al carácter especificado
(función miembro pública de
std::basic_string_view<CharT,Traits>
)
|