我如何在C++中存储这个数据集(我使用哪些容器)

How do I store this data set in C++ (which containers do I use)?

本文关键字:C++ 存储 数据集      更新时间:2023-10-16

我的数据表示如下。

A-> B,C,D,E,F
B-> C,(D,E),F
D-> (E,F)
E-> (F,G)
F-> (G)
G-> NULL

每个字母代表一个字符串。所有字母/字符串都按字母顺序排列。B->意味着B是它后面每个元素的成员。因此,对于这个例子,B行由集合(B,C)、(B,D,E)和(B,F)组成。每一行只能包含顺序高于行字符串的字符串。我必须这样安排数据。

我应该使用类似序列容器的向量还是类似关联容器的集合。

我正在构建小集群来构建大集群,所以我将从下到上迭代所有数据。

我猜是一套吗?

您似乎正在寻找一个图,但标准C++库(STL)没有这样的数据结构。下一个最佳选择是多映射:映射是1:1关联的数组,其中多映射是1:many关联的数组。

我想使用一个哈希表,其中每个字符串映射到一个向量,然后每个向量元素指向另一个向量。

这样的东西:

"b" -> {{"a", "b"},{"d"},{"e"}}