C++ 如何将集合中的每个令牌与C+中的一组令牌相关联+;

C++ 如何将集合中的每个令牌与C+中的一组令牌相关联+;,c++,string,set,token,C++,String,Set,Token,我有一组这样声明的令牌: std::set<std::string> tokens; 这正是我想要的,最终目标是对从std输入中获取的令牌执行set操作。为此,可以使用std::map std::map<std::string, std::set<std::string>> tokens; tokens["list1"].insert("item1"); tokens["list1"].insert("item2"); tokens["list1"].ins

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

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

这正是我想要的,最终目标是对从std输入中获取的令牌执行set操作。

为此,可以使用
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
std::映射令牌;
代币[“列表1”]。插入(“项目1”);
代币[“列表1”]。插入(“项目2”);
代币[“列表1”]。插入(“项目3”);
代币[“列表2”]。插入(“项目1”);
代币[“列表2”]。插入(“项目2”);
//等

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

您将
推回
std::set
?哦,与向量混淆了。是的,我的意思是插入。很抱歉反应太晚,我想我已经接受了你的回答。地图正是我需要的!直到今天我才回到这里,我只是想指出,我发现std::multimap允许重复键,而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