std:deque m_que;//怎么在memcpy函数里使用

std::deque<byte> m_que;//如何在memcpy函数里使用?
std::deque<byte> m_que;
byte m[100] = {0};
m_que.inster(m_que.end(),m,m+100);
BYTE* P = new[100];
memcpy(p,m_que,m_que+100)  //怎么不行???

------解决方案--------------------
不要用memcpy。
如果是vector<byte>,还可以memcpy(P, &v[0], 100*sizeof(byte)),但这样做不好,依赖于vector的实现。

正确方法为:

std::copy(m_que.begin(), m_que.end(), P );

上面代码需要#include <algorithm>

------解决方案--------------------
memcpy要求是连续的内存空间,而std::deque是不保证的,应该直接用STL中的copy类函数。

引用:
std::deque<byte> m_que;
byte m[100] = {0};
m_que.inster(m_que.end(),m,m+100);
BYTE* P = new[100];
memcpy(p,m_que,m_que+100)  //怎么不行???