首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-07-09 
std::dequebyte m_que//如何在memcpy函数里使用?std::dequebyte m_quebyte m[100] {0}m_que.inst

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)  //怎么不行???

热点排行