basic_string::operator
Fornece uma referência para o caractere com um índice especificado em uma cadeia de caracteres.
const_reference operator[](
size_type _Off
) const;
reference operator[](
size_type _Off
);
Parâmetros
- _Off
O índice da posição do elemento ser referenciado.
Valor de retorno
Uma referência para o caractere de cadeia de caracteres na posição especificada pelo índice do parâmetro.
Comentários
O primeiro elemento da cadeia de caracteres tem um índice de zero, e os seguintes elementos são indexados consecutivamente por números inteiros positivos, para que uma cadeia de caracteres de comprimento n tenha um n-ésimo elemento indexado pelo número n - 1.
operator[] é mais rápido que a função de membro em para fornecer acesso de leitura e gravação aos elementos de uma cadeia de caracteres.
operator[] não verifica se o índice passado como um parâmetro está válido, mas não tiver certeza que a função de membro em faz e portanto deve ser usada a validade.Um índice inválido (um índice menos que zera ou maior ou igual ao tamanho da cadeia de caracteres) passado para a função de membro em gera uma exceção de classe de out_of_range .Um índice inválido passados para os resultados de operator[] em comportamento indefinido, mas o índice igual ao comprimento da cadeia de caracteres é um índice válido para cadeias de caracteres const e o operador retorna o caractere nulo quando esse índice passado.
A referência retornada pode ser invalidada por realocações ou por alterações de cadeia de caracteres para cadeias de caracteres deconst não-.
Para compilar com _SECURE_SCL 1, um erro de tempo de execução ocorrerá se você tentar acessar um elemento fora dos limites de cadeia de caracteres.Consulte Iteradores selecionados para maiores informações.
Exemplo
// 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;
}
Saída
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
Cabeçalho: <string>
namespace: STD