Стринг тоже?
да, std::string - это на самом деле алиас к шаблонной строке
Типа шаблон вектора, который хранит символы? Или как?
да, он типизирован конкретным типом символов - char. Есть еще wstring, u8string, u16string, u32string, и можно запилить любой свой, если правильно реализовать traits для символов
ой, прошу прощения, ответил только на половину вопроса. нет, std::string(точнее, ее общий случай std::basic_string) - это не специализация и не обертка над вектором. И то и другое - по сути просто динамический массив, но строка считается особым случаем, имеет собственный интерфейс, и реализована чуток по-другому.
Но строка тоже контейнер, её тоже можно итерировать
специализированный, да. Это не просто массив символов, а именно строка, имеющая собственные особые свойства (такие как терминирующий символ в конце) =)
char[10] тоже можно итерировать
да, для этого в стандартной библиотеки пришлось городить костыль
у него нет тайпаллиасов
iterator_traits<char*> есть
https://en.cppreference.com/w/cpp/named_req/Container
char* != char[]
При чем тут итерирование?
я ничего про итерирование не писал
Это просто минимальный интерфейс контейнера. По стандарту
Посмотрите, если охота, на какой мой комментарий вы ответили
Обсуждают сегодня