Vídeo: Como Baixar - Instalar e Configurar o Dev-C++ no Windows (2018) 2024
A forma mais comum de uma matriz C ++ é a seqüência de caracteres de nulo terminada usada para exibir texto, o que mostra claramente a vantagens e desvantagens da matriz. Considere o quão fácil é o seguinte:
cout << "this is a string";
Mas as coisas ficam azedas rapidamente quando você tenta executar uma operação, mesmo que seja simples como concatenar duas dessas seqüências de caracteres com terminação nula:
char * concatCharString (const char * s1, const char * s2) {int length = strlen (s1) + strlen (s2) + 1; char * s = new char [length]; strcpy (s, s1); strcat (s, s2); return s;}
O STL fornece um contêiner string para lidar com cadeias de exibição. A classe string fornece uma série de operações (incluindo operadores sobrecarregados) para simplificar a manipulação de cadeias de caracteres. A mesma operação concat () pode ser realizada da seguinte forma usando string objetos:
string concat (const string & s1, const string & s2) {return s1 + s2;}
No seu núcleo, uma string ainda é uma matriz. As operações fornecidas pelo STL tornam mais fácil manipular objetos string , mas não muito mais rápido. Inserindo-se no meio de uma string ainda envolve mover o conteúdo das matrizes ao redor.
A classe string é, na verdade, uma instanciação do modelo de classe basic_class com T set to char . A classe wstring é outro nome para basic_class . Esta classe fornece as mesmas manipulações de caracteres mostradas aqui para cordas largas.
A definição C ++ '11 adiciona u16string e u32string , que estende os métodos de manipulação de seqüência de caracteres às cadeias de caracteres UTF-16 e UTF-32. Todas as comparações entre dois objetos de string são realizadas lexicograficamente - ou seja, qual das duas strings apareceria primeiro no dicionário do idioma atual.