find.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02c
1//===----------------------------------------------------------------------===//
2//
3// ��������������������The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <set>
11
12// class multiset
13
14//       iterator find(const key_type& k);
15// const_iterator find(const key_type& k) const;
16
17#include <set>
18#include <cassert>
19
20int main()
21{
22    typedef int V;
23    typedef std::multiset<int> M;
24    {
25        typedef M::iterator R;
26        V ar[] =
27        {
28            5,
29            6,
30            7,
31            8,
32            9,
33            10,
34            11,
35            12
36        };
37        M m(ar, ar+sizeof(ar)/sizeof(ar[0]));
38        R r = m.find(5);
39        assert(r == m.begin());
40        r = m.find(6);
41        assert(r == next(m.begin()));
42        r = m.find(7);
43        assert(r == next(m.begin(), 2));
44        r = m.find(8);
45        assert(r == next(m.begin(), 3));
46        r = m.find(9);
47        assert(r == next(m.begin(), 4));
48        r = m.find(10);
49        assert(r == next(m.begin(), 5));
50        r = m.find(11);
51        assert(r == next(m.begin(), 6));
52        r = m.find(12);
53        assert(r == next(m.begin(), 7));
54        r = m.find(4);
55        assert(r == next(m.begin(), 8));
56    }
57    {
58        typedef M::const_iterator R;
59        V ar[] =
60        {
61            5,
62            6,
63            7,
64            8,
65            9,
66            10,
67            11,
68            12
69        };
70        const M m(ar, ar+sizeof(ar)/sizeof(ar[0]));
71        R r = m.find(5);
72        assert(r == m.begin());
73        r = m.find(6);
74        assert(r == next(m.begin()));
75        r = m.find(7);
76        assert(r == next(m.begin(), 2));
77        r = m.find(8);
78        assert(r == next(m.begin(), 3));
79        r = m.find(9);
80        assert(r == next(m.begin(), 4));
81        r = m.find(10);
82        assert(r == next(m.begin(), 5));
83        r = m.find(11);
84        assert(r == next(m.begin(), 6));
85        r = m.find(12);
86        assert(r == next(m.begin(), 7));
87        r = m.find(4);
88        assert(r == next(m.begin(), 8));
89    }
90}
91