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 是一个集合,只不包括重复元素