В чем разница между std::string и std::basic string? А зачем нужны оба?



в чем разница между std::string и std::basic_string? А зачем нужны оба?

644   3  

3 ответов:

std::basic_string - это шаблон класса для создания строк из типов характера, std::string это typedef для специализации этого шаблона класса для char. Да, они оба необходимы (или, по крайней мере, требуются стандартом).

std::string создание std::basic_string<T>:

typedef std::basic_string<char> string

std::basic_string необходимо иметь подобный интерфейс для всех типов строк (wstring например).

A std::string является экземпляром std::basic_string шаблон с типом char. Вам нужны оба, так что вы можете сделать строки вещей, кроме char такое std::basic_string<wchar_t> для строки широких символов. Или если вы хотите строку с 32-битными элементами,std::basic_string<unsigned int>.

Comments

    Ничего не найдено.