入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C++ 测量程序运行时间 任务管理看内存

创建时间:2014-12-28 投稿人: 浏览次数:135


/*
 * timer.cpp
 *
 *  Created on: 2014年12月28日
 *      Author: judyge
 */

#include<cstring>
#include<iomanip>
#include<algorithm>
#include<cstdlib>
#include<cstdio>
#include<iostream>
#include<vector>
#include<stdio.h>
#include<time.h>
#include<windows.h>
#define MAXN 9999
#define MAXSIZE 1000
#define DLEN 4

using namespace std;


class BigNum
 {

 private:
     int a[500];    //可以控制大数的位数
     int len;       //大数长度
 public:
     BigNum(){ len = 1;memset(a,0,sizeof(a)); }   //构造函数
     BigNum(const int);
     friend ostream& operator<<(ostream&,  BigNum&);
     BigNum operator+(const BigNum &) const;
     void print();
 };

 BigNum::BigNum(const int b)     //将一个int类型的变量转化为大数
 {
     int c,d = b;
     len = 0;
     memset(a,0,sizeof(a));
     while(d > MAXN)
     {
         c = d - (d / (MAXN + 1)) * (MAXN + 1);
         d = d / (MAXN + 1);
         a[len++] = c;
     }
     a[len++] = d;
 }

 ostream& operator<<(ostream& out,  BigNum& b)   //重载输出运算符
 {
     int i;
     cout << b.a[b.len - 1];
     for(i = b.len - 2 ; i >= 0 ; i--)
     {
         cout.width(DLEN);
         cout.fill("0");
         cout << b.a[i];
     }
     return out;
 }

 BigNum BigNum::operator+(const BigNum & T) const   //两个大数之间的相加运算
 {
     BigNum t(*this);
     int i,big;      //位数
     big = T.len > len ? T.len : len;
     for(i = 0 ; i < big ; i++)
     {
         t.a[i] +=T.a[i];
         if(t.a[i] > MAXN)
         {
             t.a[i + 1]++;
             t.a[i] -=MAXN+1;
         }
     }
     if(t.a[big] != 0)
         t.len = big + 1;
     else
         t.len = big;
     return t;
 }

 void BigNum::print()    //输出大数
 {
     int i;
     cout << a[len - 1];
     for(i = len - 2 ; i >= 0 ; i--)
     {
         cout.width(DLEN);
         cout.fill("0");
         cout << a[i];
     }
     cout << endl;
 }


int main(){

clock_t start,finish;
double time;
start=clock();

int i;
BigNum sum(0);
for(i=0;i<=65535179;i++)
{
	BigNum tmp(i);
    sum=sum+tmp;
}
cout<<sum<<"
";

finish=clock();
time=(double)((finish-start)/CLOCKS_PER_SEC);
printf("start:%ld		finish:%ld	finish-start:%ld	runtime:%f
",start,finish,finish-start,time);
return 0;

 }

运行结果

2147429876048610
start:1		finish:37218	finish-start:37217	runtime:37.000000


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。