我用成员写了一个小的稀疏矩阵类:
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;
}
仍然需要经常调用此函数。有人知道如何改进此功能吗?提前谢谢。