мне нужен std :: string size
байтов, после его создания я собираюсь записать каждый байт в этой строке перед чтением из нее, таким образом, нулевая инициализация строки - пустая трата процессора, это работает :
std::string s(size,0);
но это просто немного расточительно, это все равно что использовать calloc()
, когда все, что мне нужно, это malloc()
, поэтому вопрос в том, как мне создать строку из X неинициализированных байтов?
(использование reserve () + pu sh - не вариант, потому что я передаю строку C -api, принимая char*,size
для фактической инициализации)
edit: this thread кажется, примерно такая же проблема / связанная (но с векторами вместо строк): Value-Initialized Objects в C ++ 11 и конструктор std :: vector