smartcounter.cpp

来自「此程序实现了表达式求值」· C++ 代码 · 共 45 行

CPP
45
字号
// SmartCounter.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "tstack.h"
#include "gisExpression.h"
#include <math.h>

int main(int argc, char* argv[])
{
	CGisExpression exp;

	double ret;
	double a = 5, b = 3.2, c = 3.3, aa=4.6, x;
	long begin = GetTickCount();
	for(int i = 0; i < 1000; i++)
	{
		x = a+b*c +log10(aa)*sin(aa+b*a) + log(123);
		a += 0.01;
		//printf("rrr = %f\n",  a+b*c +log10(aa)*sin(aa+b*a) + log(123)  );
	}
	printf("C++ use %d Tick, %f\n", GetTickCount() - begin, x);

	begin = GetTickCount();
	exp.SetExpression("a+b*c +log10(aa)*sin(aa+b*a) + ln(123) ");
	//exp.SetExpression("cos(a)");
	exp.AddVar(CVarType("aa", VAR_FLOAT, 0, 4.6));
	exp.AddVar(CVarType("a", VAR_FLOAT, 0, 5));
	exp.AddVar(CVarType("b", VAR_FLOAT, 0, 3.2));
	exp.AddVar(CVarType("c", VAR_FLOAT, 0, 3.3));
	exp.MidToPostfix();
	exp.ShowExpression(SE_POSTFIX);
	exp.GetVarValue("a", &a);
	ret = 0.0;
	for(i = 0; i < 1000; i++)
	{
		exp.Calculate(&ret);
		//a += 0.01;
		//exp.SetVarValue("a", a);
	}
	printf("My program use %d Tick, %f\n", GetTickCount() - begin, ret);

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?