一个简单的基于 STL 的 C++ 无向图实现

A simple STL based Undirected graph implementation in C++

Boost or SNAP 等库提供图形数据结构,但非常复杂。我是 C++ STL 的新手,正在寻找基于无向图表示的简单邻接列表。谷歌搜索没有找到符合要求的东西。然而,这个问题似乎很标准,我想我可以跳过为我的项目重新发明轮子。

C++ 本身不提供您可能使用的任何 graph class。如果您不想重新发明轮子(这是一件好事),实现您希望的唯一方法是使用额外的库。

如果您需要一些简单的东西,也许使用 std::map 就足够了。如果您需要更高级的东西,请尝试:

template <typename key_type, typename val_type>
class graph{
   std::map<key_type,val_type> nodes;
   std::set<std::pair<key_type,key_type> > connections;
};