В std :: string есть только члены const для извлечения данных, например 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]
Спасибо.