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

时间:2015-03-20 09:06:22

标签: c++ arrays

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

我正在使用此代码:

int a[100000]={};

上面的代码是否比此代码更快:

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

或者有没有其他方法可以做到这一点比两者都快?

2 个答案:

答案 0 :(得分:0)

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

int a[100000]={};

生成相当于

的对象代码
memset( a, 0, sizeof( a ) );

例如,IBM Mainframe中的AFAIK,此函数使用一个mashine指令实现。

答案 1 :(得分:0)

请注意,您如何自我评估您想要的任何时间(同步执行)。 伪:

DateTime begin = DateTime.Now;

// Your operations (for example 1 000 000 of them ... )

DateTime end = DateTime.Now;
TimeSpan operationsTakeOver = end - begin;

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