0

我有一组这样声明的令牌:

std::set<std::string> tokens;

我向其中insert一些有序的令牌字符串。现在我需要将集合中的每个标记与另一组唯一的字符串标记相关联。在 CI 中只保留一个标记数组和一个标记数组数组,它​​们将共享相同的第一维索引。我想知道的是这种数据结构的“C++ 版本”是什么以及它是如何实现的。

tokens = {"list1", "list2"}
sets = {"list1": {"item1", "item2", "item3"}, "list2": {"item1", "item2"}}

几乎是我想要的,最终目标是对从标准输入中获取的标记执行集合操作。

4

2 回答 2

1

您可以std::map为此使用 a 。

std::map<std::string, std::set<std::string>> tokens;
tokens["list1"].insert("item1");
tokens["list1"].insert("item2");
tokens["list1"].insert("item3");
tokens["list2"].insert("item1");
tokens["list2"].insert("item2");
// etc
于 2013-10-03T01:56:43.990 回答
0

您可能应该使用 std::multimap 而不是集合。这将保证每个“键”出现一次,并且每个“值”每个键最多出现一次,尽管相同的值可能出现在多个键上。

于 2013-10-03T01:56:51.050 回答