C++ 在c+;中将数组的所有元素初始化为零所花费的时间+;
在我的程序中,我多次将数组的所有元素初始化为零 我正在使用以下代码:C++ 在c+;中将数组的所有元素初始化为零所花费的时间+;,c++,arrays,C++,Arrays,在我的程序中,我多次将数组的所有元素初始化为零 我正在使用以下代码: int a[100000]={}; for(int i=0; i<100000; i++) { a[i]=0; } 上述代码是否比此代码快: int a[100000]={}; for(int i=0; i<100000; i++) { a[i]=0; } for(int i=0;i通常是这样定义的编译器(当数组具有自动存储持续时间时) 生成等价于 memset( a, 0, sizeof(
int a[100000]={};
for(int i=0; i<100000; i++)
{
a[i]=0;
}
上述代码是否比此代码快:
int a[100000]={};
for(int i=0; i<100000; i++)
{
a[i]=0;
}
for(int i=0;i通常是这样定义的编译器(当数组具有自动存储持续时间时)
生成等价于
memset( a, 0, sizeof( a ) );
例如,IBM大型机中的AFAIK这个函数是通过一条mashine指令实现的。只需提及,您如何能够自我评估所需的任何东西(同步执行)的时间。
伪:
然后你不必在这里问性能问题。当然在大多数情况下。这个定义a[100000]={};是错误的。您必须为数组指定类型说明符,因为答案取决于类型说明符。我正在使用int,并且我在程序中指定了它。我只是忘了在这里编写它。我会选择第一个,因为它更简洁。但是,如果您想了解性能,请同时测量这两个。您还可以检查程序集的both;如果它们都生成相同的代码,那么基准测试就没有意义了。我的问题有那么糟糕,以至于每个人都投了反对票吗?那么这是否意味着它比“for”循环更快?@priyans Gangwar是的,它可以快得多,因为例如,在IBM大型机中,函数memset只能使用一条mashine指令来实现。