天天看點

std map set 差別

  1 #include <map>

  2 #include <set>

  3 #include <iostream>

  4 

  5int main()

  6 {

  7        std::map<int, std::set<int> > map1;

  8        typedef std::map<int, std::set<int> >::iterator map_iter;

  9        typedef std::set<int>::iterator set_iter;

 10 

 11        for(int i=0; i<3; i++)

 12        {

 13                map1[i].insert(2);

 14                map1[i].insert(10);

 15                map1[i].insert(2);

 16        }

 17 

 18        int count = 0;

 19        for(map_iter cur = map1.begin(); cur != map1.end(); cur++, count++)

 20        {

 21                std::set<int> id = cur->second;

 22                for(set_iter i=id.begin(); i != id.end(); i++)

 23                        std::cout << *i << " ";

 24                std::cout << std::endl;

 25        }

 26 

 27        std::cout << << "map size = " <<  map1.size() << std::endl;

 28        return 0;

 29 }

 --  運作結果:     

2 10 

2 10 

2 10 

map size = 3

map 可以存 (1,2) (1, 10), (1,2) 重複的pair;

set 隻存  (2,10)

 map 實作了 “一對多” 映射

 set 是一個集合,隻不包括重複元素

繼續閱讀