我試圖將數組複製到一個向量,但是,當數據被複制到與原始數組不同的向量時。C++數組向量問題
int arraySize = 640000;
std::vector<unsigned char> vector_buffer;
unsigned char buffer[arraySize];
populateArray(&buffer);
for(int i = 0; i < arraySize; i++)
cout << buffer[i]; // this prints out data
std::copy (buffer, buffer + arraySize, std::back_inserter(vector_buffer));
for(int i = 0; i < arraySize; i++)
cout << vector_buffer[i]; // this prints out different data
數據似乎被壓縮了。將數組複製到矢量的任何方法都是一樣的。
我使用它從圖像創建視頻。如果我使用數組數據一切都很好,但如果我使用矢量數據,它不起作用。
任何幫助將不勝感激。
乾杯
這是最麻煩的。這是一個輸出錯誤,還是比較緩衝區和向量字節到字節的識別差異?如果是這樣,他們是什麼?他們是否遵循任何模式,例如正常的偏移或只有一些值受到影響? – 2010-10-13 17:33:47
所提供的代碼應該可以工作。這是真正的代碼失敗嗎?數組和矢量的類型是否相同? - 注意你可以使用''vector_buffer.insert(buffer,buffer + arraySize)'(可能更有效)',但這與手頭的問題無關。 – 2010-10-13 17:35:32
你可以嘗試array_size爲10或20並向我們展示putput?另外我不確定unsigned char buffer [arraySize]可以在所有編譯器上編譯。 – 2010-10-13 17:37:33