メンバーを使用して小さな疎行列クラスを作成しました。
std::map<int,std::map<int,double> > sm;
以下のメソッドは、反復子を介して不可能な場合に、マトリックスの要素にアクセスするために使用する関数です。
double matrix::operator()(int r,int c) const
{
std::map<int,std::map<int,double> >::const_iterator i = sm.find(r);
if(i==sm.end()) { return 0.0; }
std::map<int,double>::const_iterator j = i->second.find(c);
if(j==i->second.end()) { return 0.0; }
return j->second;
}
それでも、この関数は非常に頻繁に呼び出される必要があります。この機能を改善する方法を誰かが考えていますか? ありがとうございます。