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:

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 com T definido como Caracteres. o wstring classe é outro nome para basic_class. Essa classe fornece as mesmas manipulações caracteres mostrados aqui para cordas de largura.

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.


Publicações relacionadas