1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| int main() { std::multimap<int, char> dict { {1, 'A'}, {2, 'B'}, {2, 'C'}, {2, 'D'}, {4, 'E'}, {3, 'F'} }; cout << "第一种:每个元素遍历输出" << endl; for(auto pair : dict) { cout << pair.first << " " << pair.second << endl; }
cout << "第二种:指定key,进行遍历" << endl; auto range = dict.equal_range(2); for (auto i = range.first; i != range.second; ++i) { std::cout << i->first << ": " << i->second << '\n'; }
cout << "第三种:对multimap中的所有元素按key进行遍历" << endl; for(auto it = dict.begin(); it != dict.end(); it = dict.upper_bound(it->first)) { auto range = dict.equal_range(it->first); cout << it->first << ":" << endl; while(range.first != range.second) { cout << " " << range.first->second << endl; ++range.first; } } }
输出: 第一种:每个元素遍历输出 1 A 2 B 2 C 2 D 3 F 4 E 第二种:指定key,进行遍历 2: B 2: C 2: D 第三种:对multimap中的所有元素按key进行遍历 1: A 2: B C D 3: F 4: E
|