我有一组声明如此声明:
std::set<std::string> tokens;
我insert
多个有序令牌字符串。现在我需要将集合中的每个标记与另一组唯一的字符串标记相关联。在C中,我将保留一个令牌数组和一组令牌数组,它们将共享相同的第一维索引。我想知道的是这种数据结构的“C ++版本”是什么以及它是如何实现的。
tokens = {"list1", "list2"}
sets = {"list1": {"item1", "item2", "item3"}, "list2": {"item1", "item2"}}
几乎就是我想要的,最终目标是对从std输入获取的标记执行设置操作。
答案 0 :(得分:1)
您可以使用std::map
。
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
答案 1 :(得分:0)
您可能应该使用std :: multimap而不是set。 这将保证每个“键”出现一次,每个键最多出现一次“值”,尽管多个键可能出现相同的值。