社区
C++ 语言
帖子详情
memcpy的使用
rabbitjerry
2009-05-12 10:29:36
一个12行乘3列的二维数组。
一个12的一维数组。
想要把这个一维数组赋值给二维数组的第一列。
或者这样(这个是实际应用中的)
一个36大小的一维数组,一个12大小的一维数组,将后者的0,1,2...11付给前者的第0,3,6,9...33
不用for循环,因为数据量比较大,想节省时间,因此想用memcpy或者类似的函数,可以实现否?
...全文
305
13
打赏
收藏
memcpy的使用
一个12行乘3列的二维数组。 一个12的一维数组。 想要把这个一维数组赋值给二维数组的第一列。 或者这样(这个是实际应用中的) 一个36大小的一维数组,一个12大小的一维数组,将后者的0,1,2...11付给前者的第0,3,6,9...33 不用for循环,因为数据量比较大,想节省时间,因此想用memcpy或者类似的函数,可以实现否?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rabbitjerry
2009-05-14
打赏
举报
回复
我的数据量大概是十万量级的float型,for循环太慢了。
findcsdn
2009-05-14
打赏
举报
回复
可以考虑把12行3列 改成 3行12列, 这样就可以直接用memcpy 了。
山高人为峰007
2009-05-14
打赏
举报
回复
应该是可以用的
nk_ysg
2009-05-14
打赏
举报
回复
还是用for吧
zenny_chen
2009-05-14
打赏
举报
回复
你写个C代码给我看看memcpy你是怎么拷的,我给出优化方案。
zenny_chen
2009-05-12
打赏
举报
回复
如果你要在x86机器上执行,并且支持SSE2的话可以使用MOVDQA来提高效率。
如果是第二个需求的话,呵呵……
你的机器如果是Intel Core2 Duo 采用45nm技术,或是Quad,即Model为17H;或是更强大的Core i7,Model为1AH,它们反正都支持SSE4.1,那么可以使用BLEND相关指令完成。这个指令的功能非常强大。
它可以指定所要拷贝的数据位置,并且将未指定的不去改变其值。像做马赛克图像处理时就非常有用。
另外,MemoryCopy可能的话加上预取——prefetch可能会提高效率,但也有可能降低效率。要看你实际情况了。
really3353
2009-05-12
打赏
举报
回复
还是用for循环来实现吧,避免发生不必要的错误。况且用memcpy不一定会节省多少时间,反而会增加其它一些不必要的开销。
猫已经找不回了
2009-05-12
打赏
举报
回复
老老实实用for实现吧,就算你可以用其他方式转化,一旦操作了n/4次,等效于用 for的时间。
crst_zh
2009-05-12
打赏
举报
回复
[Quote=引用 1 楼 goodname 的回复:]
如果存储空间不是连续的,我想只能用循环吧,个人的浅见。
[/Quote]
同意
B[i]=A[i*3]
goodname
2009-05-12
打赏
举报
回复
如果存储空间不是连续的,我想只能用循环吧,个人的浅见。
xianyuxiaoqiang
2009-05-12
打赏
举报
回复
请使用for循环
nextel
2009-05-12
打赏
举报
回复
栈里面的数组是连续的,你用memcpy内存拷贝没问题。
once_and_again
2009-05-12
打赏
举报
回复
c++ 的设计者说,过
strcpy()和strncpy()的 区别,可以参考.前者没大小,但有结束符,
后者相反.
memcpy
,
memcpy
()函数,字符串拷贝
memcpy
: 头文件,函数原型,函数功能,函数返回值,说明
C语言中
memcpy
函数的用法详解
C语言中
memcpy
函数的用法详解
memcpy
(内存拷贝函数) c和c++
使用
的内存拷贝函数,
memcpy
函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。 void*
memcpy
(void* destination, const void* source, size_t num); void* dest 目标内存 const void* src 源内存 size_t num 字节个数 库中实现的
memcpy
函数 struct { char name[40]; int age; } person, person_cop
memcpy
函数的实现
一个
使用
memcpy
的实现版本,考虑内存重叠以及效率
linux
memcpy
源码
linux内核源码:
memcpy
,对比这个就发现了自己的不足,
memcpy
真能考验程序员的编程技能与逻辑思维
memcpy
优化---性能大幅提升几倍
。虽然因为硬件限制没有达到AMD文档中所说
memcpy
函数300%的性能提升,但在我机器上实测也有%175-%200的明显性能提升(此数据可能根据机器情况不同)。
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章