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 是一個集合,隻不包括重複元素