000
28.04.2004, 06:32 Uhr
kaihua
|
Folgende sind 2 programme, machen gleiche Aufgabe, sum = 1+2+3+...+100;
C++: |
// Program 1 // compiliert in VC 6.0 und run in VC 6.0 #include <iostream> using namespace std;
int main() { int n = 100; int sum = n*(n+1)/2; cout<<sum;
system("pause");
return 0; }
|
C++: |
// Program 2 // Compiliert und run in Dev C++ // Error vorkommt wenn es in VC 6.0 compiliert #include <iostream>
template<int num> struct Sum { static const int value=Sum<num-1>::value+num; };
template<> struct Sum<1> { static const int value=1; };
int main() { std::cout<<Sum<100>::value<<std::endl; }
|
Jetzt die Frage ist welche Program ist besser. Jemand behauptete, Program 2 ist besser, weil das Ergebnis während compilerzeit schon erzeugt, deswegen schneller als Program 1. Ist das wahr? |