首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

动态链接库里的函数为啥这么慢

2012-08-08 
动态链接库里的函数为何这么慢?听说c++的效率很高的,可是我的函数为何速度很慢,是我的代码写的不行吗?请高

动态链接库里的函数为何这么慢?
听说c++的效率很高的,可是我的函数为何速度很慢,是我的代码写的不行吗?
请高手检查修改!!!


#include<string>
#include<vector>
#include<sstream>
using namespace std;

string WX(string b1,string b2) {  
  if((b1+b2=="金水")||(b1+b2=="木火")||(b1+b2=="水木")||(b1+b2=="火土")||(b1+b2=="土金"))
  return "SY";
else if((b1+b2=="金土")||(b1+b2=="木水")||(b1+b2=="水金")||(b1+b2=="火木")||(b1+b2=="土火"))
  return "SZ";  
else if((b1+b2=="金木")||(b1+b2=="木土")||(b1+b2=="水火")||(b1+b2=="火金")||(b1+b2=="土水"))
return "KY";
else if((b1+b2=="金火")||(b1+b2=="木金")||(b1+b2=="水土")||(b1+b2=="火水")||(b1+b2=="土木"))
  return "KZ";
else if((b1+b2=="金金")||(b1+b2=="木木")||(b1+b2=="水水")||(b1+b2=="火火")||(b1+b2=="土土"))
  return "TT";
else  
  return "";
}

string FH1(vector<string> c1,vector<string>c2,vector<string>f4){  
 string n,o;
 int z=0;
 vector<string>::reverse_iterator p1=c1.rbegin();
 vector<string>::reverse_iterator p2=c2.rbegin();
 do

 n=(WX(*(p1+1),*p2))[0];  
 o=(WX(*(p1+2),*(p2+1)))[0];  
  z++; 
  p1++; 
  p2++; 
} while((n==o)&&(n!="T")&&(o!="T"));  
vector<string>::iterator k=f4.begin();
 ostringstream oss;
  oss<<z;
  string q=oss.str(),f2;
  f2=(WX(*(p1+1),*p2))[0];
if(z<15)
return "";

else if(f2=="S"){
  if(*p1=="金")
  return q+*(k+0);
  if(*p1=="木")
return q+*(k+1);  
  if(*p1=="水")
return q+*(k+2);
  if(*p1=="火")
return q+*(k+3);
  if(*p1=="土")
return q+*(k+4);
 }
else if(f2=="K"){
  if(*p1=="金")
  return q+*(k+5);
  if(*p1=="木")
return q+*(k+6);  
  if(*p1=="水") 
return q+*(k+7);
  if(*p1=="火")
return q+*(k+8);
  if(*p1=="土")
return q+*(k+9);
}
  }

[解决办法]
string WX(string b1,string b2)
string FH1(vector<string> c1,vector<string>c2,vector<string>f4)
改為
string WX(string const &b1,string const &b2)
string FH1(vector<string> const &c1,vector<string>const &c2,vector<string>const &f4)

這樣速度就上去了。

热点排行