Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在c+;中将数组的所有元素初始化为零所花费的时间+;_C++_Arrays - Fatal编程技术网

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指令来实现。