我试图将数组复制到一个向量,但是,当数据被复制到与原始数组不同的向量时。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