librerias libreria geeksforgeeks functions estandar dev c++ stl

c++ - libreria - ¿Cuál es la diferencia entre std:: string y std:: basic_string? ¿Y por qué se necesitan ambos?



stl class c++ (3)

Una std::string es una instanciación de la plantilla std::basic_string con un tipo de char . Necesita ambos para poder crear cadenas de caracteres además de char , como std::basic_string<wchar_t> para una cadena de caracteres anchos. O si desea una cadena con elementos de 32 bits, std::basic_string<unsigned int> .

¿Cuál es la diferencia entre std::string y std::basic_string ? ¿Y por qué se necesitan ambos?


std::basic_string es una plantilla de clase para hacer cadenas de tipos de caracteres, std::string es un typedef para una especialización de esa plantilla de clase para char . Sí, ambos son necesarios (o al menos requeridos por el estándar).


std::string es una instanciación de std::basic_string<T> :

typedef std::basic_string<char> string

std::basic_string es necesario para tener una interfaz similar para todo tipo de cadenas ( wstring por ejemplo).