Выделить структуру, содержащую строку, за один раз

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

По сути, для этого потребуется структура с полем, описывающим, какие данные содержит структура, и еще одно поле, являющееся строкой с самими данными. Длина строки всегда будет известна во время распределения. В результате тестирования мы определили, что удвоение количества выделений, необходимых для каждого из этих типов данных, является неприемлемой ценой. Есть ли способ выделить память для структуры и std::string, содержащейся в структуре, за одно выделение? Если бы мы использовали cstrings, я бы просто добавил char * в структуру и указал бы его на конец структуры после выделения блока, достаточно большого для структуры и строки, но мы бы предпочли std::string, если это возможно.

Большая часть моего опыта связана с C, поэтому, пожалуйста, простите мне любое проявленное здесь незнание C++.

5
задан Shea Levy 8 June 2012 в 12:11
поделиться