【发布时间】:2013-05-05 14:21:38
【问题描述】:
我有大阵:
int* arr = new int[BIGNUMBER];
如何快速填写 1 个号码。通常我会这样做
for(int i = 0; i < BIGNUMBER; i++)
arr[i] = 1
但我认为这需要很长时间。
我可以使用memcpy 或类似的吗?
【问题讨论】:
-
尽量避免假设运行需要多长时间。
-
您真的尝试过这样做吗?需要多长时间?
-
BIGNUMBER通常是什么? -
如果这是您的瓶颈,那么您的代码结构错误。我猜你填充数组是有原因的,所以你必须有另一个(可能更慢)循环。无论如何
memcpy可能会更慢,因为它需要进行内存查找而不是使用寄存器/常量。 -
仅供参考:我尝试了基于 memcpy 的算法,但在速度上没有得到任何有意义的差异。
标签: c++ arrays performance