这是我的代码
typedef std::pair<unsigned long, unsigned long> link;
std::map<link, double> container;
我想要做的是计算从 X 到 Y 的距离并将容器存储为 container.insert(std::make_pair(link, distance)); 并说现在我必须计算从 Y 到 X 的距离,而不是重做整个计算,而是从容器中获取存储的值,即……链接和距离。
我当前的实现仅适用于 (X,Y)
std::map<link, double>::iterator It = container.begin();
std::pair<unsigned long, unsigned long> k = link(X,Y);
It = container.find(K);
if(It != container.end()) { distance = It->second; }
else { /* distance = /* complex calc */ container.insert(std::make_pair(k,distance)); }
我怎样才能使它泛化,以便将链接(X,Y)和链接(Y,X)视为相同?