我创建了一个包含集合作为值的地图,但现在我仍然坚持如何将值添加到集合中。
map <int, set<string> > myMap;
我尝试了类似这样的东西并且工作正常,但它对我来说无用,因为我在循环中填充了集合(因此每个集合都包含之前集合中的所有值,这不是我的意思#39;我正在寻找)。
set <string> mySet;
while ( expression )
{
mySet.insert(str);
myMap.insert ( pair<int, set<string> > (myNumber, mySet) );
}
答案 0 :(得分:0)
#include <map>
#include <set>
#include <string>
#include <iostream>
int main(int argc,char** argv)
{
typedef std::map <int, std::set<std::string> > maptype;
maptype myMap;
myMap[rand()%100].insert("susan");
myMap[rand()%100].insert("bob");
myMap[rand()%100].insert("bill");
for (maptype::iterator it = myMap.begin(); it != myMap.end(); ++it)
{
std::cout << it->first << ",";
const std::set<std::string>& set = it->second;
for (std::set<std::string>::iterator setit = set.begin();
setit != set.end();
++setit)
{
std::cout << *setit << ",";
}
std::cout << std::endl;
}
}