你好我是c ++的新手。我试图优化我的代码。我的代码包含两个for循环,在第二个循环中有一个if块。第一个循环将迭代10 ^ 14次,内部循环将迭代10 ^ 4次。我的代码如下:
#include<iostream>
using namespace std;
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<dos.h>
#include<stdio.h>
#include<fstream>
using namespace std;
#include<math.h>
#include<thread>
using namespace std;
signed long long run,i,j;
int main()
{
run=0;
for (i=0;i<100000000000000;i++)
{
for (j=0;j<10000;j++)
{
run=run+1;
}
}
cout<<run<<"\n";
}
它完成的时间大约是1天。所以我在我的代码中使用线程来使它成为第一个。但它显示包含-std = c ++ 0x。那么包括这个呢?
有没有人愿意帮助我?
答案 0 :(得分:1)
我将如下优化它,但好的编译器可能会这样做:
#include<iostream>
signed long long run,i,j;
int main()
{
i = 100000000000000;
j = 10000;
run = i * j;
std::cout << run << '\n';
}
答案 1 :(得分:0)
-std=c++0x
是一个编译选项,它告诉编译器你正在使用C ++ 11标准。
您可能需要查看类似于http://www.cs.cf.ac.uk/Dave/C/node3.html的关于编译的链接。