C ++: o recipiente cadeia
A forma mais comum de uma matriz C ++ é a cadeia de caracteres terminada-nula utilizado para exibir texto, o qual mostra claramente as vantagens e desvantagens da matriz. Considere o quão fácil a seguinte tela:
Conteúdo
cout lt; lt; "Esta é uma string"-
Mas as coisas azedam rapidamente quando você tenta executar uma operação, mesmo tão simples como concatenar duas dessas cadeias de terminação nula:
Video: Morning Routine Life Hacks - 35 Life Hacks and DIY Projects You Need to Try!
char * concatCharString (const char * s1, const char * s2) {int length = strlen (s1) + strlen (s2) + 1-char * s = new char [comprimento] -strcpy (s, s1) -strcat (s , s2) -Retornar s-}
O STL fornece um corda recipiente para lidar com cadeias de exibição. o corda classe fornece um número de operações (incluindo operadores sobrecarregados) para simplificar a manipulação de cadeias de caracteres. O mesmo concatenação () a operação pode ser realizada como se segue usando corda objetos:
Video: Mixórdia de Temáticas - Série Miranda
concatenação de string (string const& s1, const string& s2) {return S1 + S2}
Na sua essência, um corda ainda é uma matriz. As operações previstas pela STL torná-lo mais fácil de manipular corda objetos, mas não muito mais rápido. Inserir no meio de uma corda ainda envolve mover o conteúdo de matrizes ao redor.
o corda classe é realmente uma instanciação do modelo de classe basic_class
A definição C ++ `11 acrescenta u16string e u32string, que se estende a métodos de manipulação de cadeia para UTF-16 e UTF-32 cadeias de caracteres. Todas as comparações entre dois objetos string são realizadas lexicographically - isto é, qual das duas cordas que aparecem em primeiro lugar no dicionário do idioma atual.