插入一个集合,该集合是map <int,set <string =“”>&gt; </int,>的一部分

时间:2014-03-14 19:31:37

标签: c++ map set

我创建了一个包含集合作为值的地图,但现在我仍然坚持如何将值添加到集合中。

map <int, set<string> > myMap;

我尝试了类似这样的东西并且工作正常,但它对我来说无用,因为我在循环中填充了集合(因此每个集合都包含之前集合中的所有值,这不是我的意思#39;我正在寻找)。

set <string> mySet;

while ( expression ) 
{
mySet.insert(str);
myMap.insert ( pair<int, set<string> > (myNumber, mySet) );
}

1 个答案:

答案 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;
       }
    }