basic_string::operator[]
Proporciona una referencia al carácter con un índice especificado en una cadena.
const_reference operator[](
size_type _Off
) const;
reference operator[](
size_type _Off
);
Parámetros
- _Off
El índice de la posición del elemento que se haga referencia.
Valor devuelto
Una referencia al carácter de la cadena en la posición especificada por el índice del parámetro.
Comentarios
El primer elemento de cadena tiene un índice de cero, y los elementos siguientes son indizados consecutivamente por enteros positivos, para que una cadena de n de longitud tenga un enésimoelemento indizada por n de número - 1.
operator[] es más rápida que la función en miembro para proporcionar el acceso de lectura y escritura a los elementos de una cadena.
operator[] no comprueba si el índice pasado como parámetro sea válido, pero la función en miembro realiza y lo que debe utilizarse en la validez no es segura. Un índice no válido (un índice menos que pone a cero o mayor o igual que el tamaño de la cadena) pasado a la función en miembro produce una excepción de clase de out_of_range . Un índice no válido que se pasa a operator[] resultados en comportamiento no definido, pero el índice igual a la longitud de la cadena es un índice válido para cadenas const y el operador devuelve el carácter null cuando se pasa este índice.
La referencia devuelta se puede reemplazar por reasignaciones o modificaciones de la cadena para cadenas no deconst .
Al compilar con _SECURE_SCL 1, un error de tiempo de ejecución aparecerá si intenta tener acceso a un elemento fuera de los límites de la cadena. Para obtener más información, vea Iteradores activados.
Ejemplo
// basic_string_op_ref.cpp
// compile with: /EHsc
#include <string>
#include <iostream>
int main( )
{
using namespace std;
string str1 ( "Hello world" ), str2 ( "Goodbye world" );
const string cstr1 ( "Hello there" ), cstr2 ( "Goodbye now" );
cout << "The original string str1 is: " << str1 << endl;
cout << "The original string str2 is: " << str2 << endl;
// Element access to the non-const strings
basic_string <char>::reference refStr1 = str1 [6];
basic_string <char>::reference refStr2 = str2.at ( 3 );
cout << "The character with an index of 6 in string str1 is: "
<< refStr1 << "." << endl;
cout << "The character with an index of 3 in string str2 is: "
<< refStr2 << "." << endl;
// Element access to the const strings
basic_string <char>::const_reference crefStr1 = cstr1 [ cstr1.length ( ) ];
basic_string <char>::const_reference crefStr2 = cstr2.at ( 8 );
if ( crefStr1 == '\0' )
cout << "The null character is returned as a valid reference."
<< endl;
else
cout << "The null character is not returned." << endl;
cout << "The character with index of 8 in the const string cstr2 is: "
<< crefStr2 << "." << endl;
}
Resultados
The original string str1 is: Hello world
The original string str2 is: Goodbye world
The character with an index of 6 in string str1 is: w.
The character with an index of 3 in string str2 is: d.
The null character is returned as a valid reference.
The character with index of 8 in the const string cstr2 is: n.
Requisitos
Encabezado: <string>
Espacio de nombres: std