PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 请教一个处理array的问题
楼主:
WillBeFine
(努力)
2019-09-12 00:21:52
Sorry! 请教各位:
下列程式, 除了用 for loop 外, 有没有更快的方法?
int i =0;
int array1[5] = {1,3,5,7,9};
int array2[6];
for (i=0; i<5; i++)
array2[i+1] = array1[i];
抱歉, 谢谢各位...
作者:
helloxin
(日斤)
2019-09-12 00:30:00
memcpy?
作者:
idiont
(supertroller)
2019-09-12 00:47:00
如果你只是想要用1based 可以用int *array2 = array1 - 1;如果你是要复制一份 那还是用memcpy
作者:
s06i06
(三条鱼)
2019-09-12 00:59:00
copy(begin(array1), end(array1), array2 + 1)
作者:
firejox
(Tangent)
2019-09-12 01:02:00
for loop + OpenMP
作者:
loveme00835
(发箍)
2019-09-12 01:22:00
4F 用 begin/end 结果最后 operator+ 破功 xD
作者:
poyenc
(发箍)
2019-09-12 01:47:00
2F 是 undefined behavior, 指标加回来并且还可以存取阵列元素的前提是: 它原本就指向阵列元素
作者:
djshen
(djshen)
2019-09-12 02:48:00
这种形式compiler有机会帮你vectorize吧
作者:
Schottky
(顺风相送)
2019-09-12 07:05:00
同意三楼,看你实际上想做什么而定,避免copy自然快
楼主:
WillBeFine
(努力)
2019-09-12 08:53:00
谢谢各位,就是要在阵列先多塞一个bytes,资料多用for循环一定慢所以用 memcpy 较好?? 谢谢..
作者:
Schottky
(顺风相送)
2019-09-12 09:08:00
那你觉得一开始就用别的可插入的资料结构会不会更好 XD或是一开始就在 array1 前面预留很多空间可以插入东西另外你这是插入一个 int 不是插入一个 byte
作者:
Gway
(我爱的你 也爱我 好吗?)
2019-09-12 10:24:00
楼上点出我的疑惑 xD 从idx 1 开始初始化资料 不行吗? idx0 填0 or -1 or # item个数也行啊
楼主:
WillBeFine
(努力)
2019-09-12 11:56:00
因为array1 是传入的,所以无法改.
作者: tomet (沁)
2019-09-12 13:50:00
你已经把输入与输出结果都订死了,很难有不copy的做法
作者:
bigbite
(子子孙孙永保用)
2019-09-13 10:39:00
poyenc说的undefined behavior我看不懂耶, 问题在哪?
作者:
poyenc
(发箍)
2019-09-13 13:01:00
楼上可以参考
http://eel.is/c++draft/expr.add#4.2
继续阅读
Re: [问题] 关于不同资料却得到相同地址的问题
poyenc
[问题] 关于不同资料却得到相同地址的问题
ac01965159
[问题] 用javascript呼叫lua函式
fsvy
Re: [问题] dll 之间传递 vector<class>
EricTCartman
[问题] dll 之间传递 vector<class>
PythonScript
[问题] 用alloca申请RAM,函式返回后没有释放
bashinan
[问题] 请问大家会建议用纯C刷Leetcode吗?
qazkevin
Re: [问题] 字符指标的问题
ando5566
Re: [问题] 字符指标的问题
sakishil
[问题]printf输出过多时前面字符被挤掉?
melogod
Links
booklink
Contact Us: admin [ a t ] ucptt.com