-14
第一代碼超過時限:正常工作提供了成功與0秒給定的兩個代碼有什麼區別。一個給人當ideone運行和其他工作正常
int main()
{
int n=100000;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{}
cout<<"ffdfdf";
}
第二碼時間:給定一個時間限制超過
int main()
{
int n=100000;
bool **a=new bool*[n];
for(int i=0;i<n;i++)
{
bool[i]=new bool[n];
for(int j=0;j<n;j++)
{
bool[i][j]=1;
}
}
cout<<"ffdfdf";
}
可以任何人都可以解釋爲什麼這兩個代碼片段有很大的時間差異。我不理解它。
這兩個代碼是完全不同的。第二個使用'new'這是相當昂貴的,先不和你在第二次分配的內存數量龐大, –
什麼都不做數十億倍,通常會比顯著做一些像分配的內存數十億大塊快的時代。 – StoryTeller
在第一個程序中,一個好的編譯器將能夠優化它。在第二個程序中,你寫了很多內存位置。 –