迭代器能不能强制类型转换 memcpy(currentuser, (pSUserInf)user_iter, sizeof(SUserInf));

wwyyxx26 2010-05-26 02:04:04
迭代器能不能强制类型转换 memcpy(currentuser, (pSUserInf)user_iter, sizeof(SUserInf));

有没有这样的功能啊


list<SUserInf>::iterator user_iter;
SUserInf为一个结构体类型

memcpy(currentuser, user_iter, sizeof(SUserInf));不通
memcpy(currentuser, (pSUserInf)user_iter, sizeof(SUserInf));不通
currentuser为pSUserInf指针类型


...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
selooloo 2010-05-26
  • 打赏
  • 举报
回复
可以强制转换,但结果基本与你需要的相差十万八千里
想用memcpy就用指针,
想用迭代器,容器里有相应的复制算法,比如copy,assign
2010-05-26
  • 打赏
  • 举报
回复
难道 *currentuser = *user_iter 不比 memcpy 好看?
pengzhixi 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 wwyyxx26 的回复:]
迭代器能不能强制类型转换 memcpy(currentuser, (pSUserInf)user_iter, sizeof(SUserInf));

有没有这样的功能啊


list<SUserInf>::iterator user_iter;
SUserInf为一个结构体类型

memcpy(currentuser, user_iter, sizeof(SUserInf));不通……
[/Quote]

如果结构体里面有构造函数,拷贝构造函数,你用memcpy不出错的话那算你人品好
2010-05-26
  • 打赏
  • 举报
回复
迭代器只是有时候看起来像指针,其实不一定是,你最好认为它不是。

换一种说法,指针是迭代器的一种特例,你要求所有迭代器匹配这个特例,显然是不对的……
lylm 2010-05-26
  • 打赏
  • 举报
回复
这样即使能过,感觉也别扭,就像你一会儿malloc,一会delete
白云飘飘飘 2010-05-26
  • 打赏
  • 举报
回复
memcpy(&*currentuser, &*user_iter, sizeof(SUserInf));
taodm 2010-05-26
  • 打赏
  • 举报
回复
楼主啊,基本上扔了那些让你在C++里memcpy的书籍吧。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧