Подтвердить что ты не робот

Какая разница между std::string и std:: basic_string? И зачем нужны оба?

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

4b9b3361

Ответ 1

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

Ответ 2

std::string является экземпляром std::basic_string<T>:

typedef std::basic_string<char> string

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

Ответ 3

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