我正在尝试创建一个模板图形类,所以我需要以某种方式存储边缘。我想,如果我可以通过两个 Node 智能指针访问 EdgeValue 可能会很棒。但我实际上不知道,如何使它工作。现在是这样的:
template <class Node, class EdgeValue>
class Graph
{
typedef std::shared_ptr < Node > NodePtr;
std::map < std::pair < NodePtr, NodePtr > , EdgeValue> Edges;
}
但我很确定,这行不通。我应该创建比较类还是函数?应该是模板吗?实际上,如何比较智能指针?