實例化矢量
vector<char> vec
和我有數據爲
char* data
與
size_t len
長度一起。我目前這樣做:
vec.reserve(len);
std::copy(data, data+len, back_inserter(vec));
和我說的這是一個熱點。我不知道一次複製一個字節是否太慢,並且在每次迭代中複製4或8個字節會更快。我也不知道有這種方式來填充矢量(因爲它需要寫入它的data()
成員)。
有沒有辦法,也許,以避免完全複製?
我期望std :: copy是有效的,即對於字符數組而言,只有具有CPU特定ASM的memcpy可能會在內部使用。但是完全避免拷貝當然更好;) –
考慮重新設計這個庫函數的接口;只接受向量很弱 –
該庫提供的功能類似於Google的協議緩衝區。數據根據模式存儲,然後可以序列化。數據作爲std :: vector存儲在內存中。 – ytoledano