解析數學表達式的庫-exprtk


github傳送門:https://github.com/ArashPartow/exprtk

網站上有很多介紹,這里先使用最簡單的方法。

將exprtk.hpp加入到項目中就可以了,然后包含這個頭文件。

常規表達式:

#include <iostream>
#include "exprtk.hpp"
using namespace std;
double eval(string s)
{
	exprtk::expression<double> expr;
	exprtk::parser<double> p;
	p.compile(s,expr);
	return expr.value();
}

int main(int argc,char** argv)
{
	if(argc!=2)
	{
		cout<<"Usage:"<<argv[0]<<" \"expression\""<<endl;
		return -1;
	}
	cout<<argv[1]<<"="<<eval(argv[1])<<endl;
   	
	return 0;
}

  編譯運行測試: 

對比了一下第二個計算的結果:

使用這個庫,寫一個圖形科學計算器,豈不是分分鍾的事情?可能最主要的工作被淪落為拖控件和界面設計了……

不過也有坑爹的地方,那就是由於使用了hpp文件的方式,這么一個簡單的程序,編譯以后文件大小居然是10.1M,

當然這只是這個應用的冰山一角,實際上,還有更高級更強大的功能,例如支持帶變量的表達式等,感興趣的話可以摸索試試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM