Понимание эффективности an std :: string

Я пытаюсь узнать немного больше о строках C ++.

рассмотрите

const char* cstring = "hello";
std::string string(cstring);

и

std::string string("hello");

Правильно ли я предполагаю, что оба хранят "привет" в раздел .data приложения и байты затем копируются в другую область в куче, где указатель, управляемый std :: string, может получить к ним доступ?

Как я могу эффективно сохранить действительно очень длинную строку? Я как бы думаю о приложении, которое читает данные из потока сокета. Я боюсь многократного объединения. Я мог бы представить, как использовать связанный список и пройти по этому списку.

Строки слишком долго пугали меня!

Любые ссылки, подсказки, объяснения, дальнейшие подробности были бы чрезвычайно полезны.

6
задан flumpb 23 April 2011 в 21:54
поделиться