如何将集合中的每个标记与C ++中的一组标记相关联

时间:2013-10-03 01:54:40

标签: c++ string set token

我有一组声明如此声明:

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

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

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

几乎就是我想要的,最终目标是对从std输入获取的标记执行设置操作。

2 个答案:

答案 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。 这将保证每个“键”出现一次,每个键最多出现一次“值”,尽管多个键可能出现相同的值。