我找到了一个用于 Graphs 的开源类库。当我将它包含在我的项目中时,它有很多错误,我试图修复它们。但是有一个我无法解决的编译错误。
基类:
template <typename K, typename W, typename T>
class _base_graph
{
//...
protected:
std::map<K, T> nod;
std::list<edge> edg;
};
派生类:
template <typename K, typename T = void*>
class graph : public _base_graph<K, void*, T>
{
//...
public:
void add_edge(const K& k1, const K& k2);
};
方法体:
template <typename K, typename T>
void graph<K, T>::add_edge(const K& k1, const K& k2)
{
if (nod.find(k1) == nod.end() || nod.find(k2) == nod.end()) // <-- error!!
throw std::string("add_edge: Node does not exist");
// ...
}
但是我的 gcc 编译器向我显示了一个错误:
错误:未在此范围内声明“点头”
您可以在此在线编译器中找到并测试 mycode 。