std::basic_string<CharT,Traits,Allocator>:: at
|
CharT
&
at
(
size_type pos
)
;
|
(1) | (constexpr desde C++20) |
|
const
CharT
&
at
(
size_type pos
)
const
;
|
(2) | (constexpr desde C++20) |
Devuelve una referencia al carácter en la posición especificada pos . Se realiza verificación de límites, se lanzará una excepción de tipo std::out_of_range en caso de acceso inválido.
Contenidos |
Parámetros
| pos | - | posición del carácter a devolver |
Valor de retorno
Referencia al carácter solicitado.
Excepciones
Lanza std::out_of_range si pos >= size ( ) .
Si se lanza una excepción por cualquier razón, estas funciones no tienen efecto ( strong exception safety guarantee ).
Complejidad
Constante.
Ejemplo
#include <iostream> #include <stdexcept> #include <string> int main() { std::string s("message"); // para capacidad 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 { // Esto lanzará una excepción ya que el desplazamiento solicitado es mayor que el tamaño actual. s.at(3) = 'x'; } catch (std::out_of_range const& exc) { std::cout << exc.what() << '\n'; } }
Salida posible:
abx string size = 3 string capacity = 7 basic_string::at
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Se aplica a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 847 | C++98 | no existía garantía de seguridad de excepciones | se añadió garantía de seguridad fuerte de excepciones |
| LWG 2207 | C++98 | el comportamiento era indefinido si pos >= size ( ) es true | siempre lanza una excepción en este caso |
Véase también
|
accede al carácter especificado
(función miembro pública) |
|
|
accede al carácter especificado con verificación de límites
(función miembro pública de
std::basic_string_view<CharT,Traits>
)
|