Build system improvements
[ustl.git] / bvt / bvt15.cc
blob0c2f805134694a8cf63b52841d3f62383117bc09
1 // This file is part of the ustl library, an STL implementation.
2 //
3 // Copyright (C) 2005 by Mike Sharov <msharov@users.sourceforge.net>
4 // This file is free software, distributed under the MIT License.
5 //
7 #include "stdtest.h"
9 typedef multimap<int,string> empmap_t;
10 typedef empmap_t::const_iterator citer_t;
12 void PrintEntries (citer_t first, citer_t last)
14 for (citer_t i = first; i < last; ++ i)
15 cout << i->second << "\t- $" << i->first << endl;
18 inline void PrintEntries (const empmap_t& m) { PrintEntries (m.begin(), m.end()); }
20 void TestMultiMap (void)
22 empmap_t employees;
23 employees.insert (make_pair (27000, string("Dave")));
24 employees.insert (make_pair (27000, string("Jim")));
25 employees.insert (make_pair (99000, string("BigBoss")));
26 employees.insert (make_pair (47000, string("Gail")));
27 employees.insert (make_pair (15000, string("Dumb")));
28 employees.insert (make_pair (47000, string("Barbara")));
29 employees.insert (make_pair (47000, string("Mary")));
31 cout << "As-inserted listing:" << endl;
32 PrintEntries (employees);
34 cout << "Alphabetical listing:" << endl;
35 sort (employees);
36 PrintEntries (employees);
38 empmap_t::range_t middles = employees.equal_range (47000);
39 cout << "Employees making $" << middles.first->first << ":";
40 empmap_t::const_iterator i;
41 for (i = middles.first; i < middles.second; ++ i)
42 cout << " " << i->second;
43 cout << endl;
45 cout << "There are " << employees.count (27000) << " low-paid employees" << endl;
47 cout << "Firing all low-paid employees:" << endl;
48 employees.erase (27000);
49 PrintEntries (employees);
51 cout << "Firing dumb employees:" << endl;
52 employees.erase (employees.begin(), employees.begin() + 1);
53 PrintEntries (employees);
56 StdBvtMain (TestMultiMap)