Я создаю С++-оболочку для куска кода C, который возвращает большой массив, и поэтому я попытался вернуть данные в vector<unsigned char>
.
Теперь проблема заключается в том, что данные имеют порядок мегабайт, а vector
неоправданно инициализирует его хранилище, что существенно сокращает мою скорость наполовину.
Как это предотвратить?
Или, если это невозможно, есть ли какой-нибудь другой контейнер STL, который бы избегал такой ненужной работы? Или я должен создать свой собственный контейнер?
(Pre-С++, 11)
Примечание:
Я передаю вектор в качестве моего выходного буфера. Я не копирует данные из других источников.
Это что-то вроде:
vector<unsigned char> buf(size); // Why initialize??
GetMyDataFromC(&buf[0], buf.size());