В std::string есть только константные элементы для извлечения данных типа c_str(). Однако я могу получить ссылку на первый элемент строки через operator[]
, и я могу написать ей.
Например, если у меня есть функция:
void toupper(char *first,char *last_plus_one);
Я могу написать прямо в вектор, получая указатель на первый элемент:
vector<char> message // has "Some Message";
toupper(&message[0],&message[0]+message.size());
Могу ли я сделать то же самое с std::string?
string message="Some Message";
toupper(&message[0],&message[0]+message.size());
Является ли стандарт гарантией того, что местоположение памяти фактически линейно? то есть:
&(*(message.begin()+n)) == &message[n]
Спасибо.