插入到属于 map <int、set > 的集合中<string>

inserting into a set which is part of map <int, set<string> >

本文关键字:gt lt 集合 string set int 属于 map 插入      更新时间:2023-10-16

我创建了一个包含set作为值的map,但是现在我被如何将值添加到set中卡住了。

map <int, set<string> > myMap;

我尝试了这样的东西,它工作得很好,但它对我来说是无用的,因为我在循环中填充了集合(所以每个集合都包含了之前集合的所有值,这不是我想要的)。

set <string> mySet;
while ( expression ) 
{
mySet.insert(str);
myMap.insert ( pair<int, set<string> > (myNumber, mySet) );
}
    #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;
       }
    }