在c++中将数组的所有元素初始化为零所花费的时间

Time spent in initializing all elements of an array to zero in c++

本文关键字:零所 时间 元素 c++ 数组 初始化      更新时间:2023-10-16

我在程序中多次将数组的所有元素初始化为零。

我使用的是这个代码:

int a[100000]={};

上面的代码比这个代码快吗:

for(int i=0; i<100000; i++)
{
    a[i]=0;
}

或者还有其他比两者都快的方法吗?

通常编译器用于这样的定义(当数组具有自动存储持续时间时)

int a[100000]={};

生成等价于的目标代码

memset( a, 0, sizeof( a ) );

例如,在IBM大型机中的AFAIK,此功能是用一条mashine指令实现的。

仅举一例,您可以如何自我评估所需的任何事情的时间(同步执行)。伪:

DateTime begin = DateTime.Now;
// Your operations (for example 1 000 000 of them ... )
DateTime end = DateTime.Now;
TimeSpan operationsTakeOver = end - begin;

然后你就不必在这里问性能问题了。当然,在大多数情况下。