blob: eb401951aaada7846e70e1b078fd890bcee594a5 [file] [log] [blame]
Howard Hinnant3e519522010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnant5b08a8a2010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnant3e519522010-05-11 19:42:16 +00004//
Howard Hinnant412dbeb2010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant3e519522010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
9
10// <set>
11
12// class set
13
14// iterator begin();
15// const_iterator begin() const;
16// iterator end();
17// const_iterator end() const;
Howard Hinnant8f2f7e72010-08-22 00:15:28 +000018//
Howard Hinnant3e519522010-05-11 19:42:16 +000019// reverse_iterator rbegin();
20// const_reverse_iterator rbegin() const;
21// reverse_iterator rend();
22// const_reverse_iterator rend() const;
Howard Hinnant8f2f7e72010-08-22 00:15:28 +000023//
Howard Hinnant3e519522010-05-11 19:42:16 +000024// const_iterator cbegin() const;
25// const_iterator cend() const;
26// const_reverse_iterator crbegin() const;
27// const_reverse_iterator crend() const;
28
29#include <set>
30#include <cassert>
31
32int main()
33{
34 {
35 typedef int V;
36 V ar[] =
37 {
38 1,
39 1,
40 1,
41 2,
42 2,
43 2,
44 3,
45 3,
46 3,
47 4,
48 4,
49 4,
50 5,
51 5,
52 5,
53 6,
54 6,
55 6,
56 7,
57 7,
58 7,
59 8,
60 8,
61 8
62 };
63 std::set<int> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
64 assert(std::distance(m.begin(), m.end()) == m.size());
65 assert(std::distance(m.rbegin(), m.rend()) == m.size());
Howard Hinnant27745452011-01-28 23:46:28 +000066 std::set<int>::iterator i;
67 i = m.begin();
Howard Hinnant3e519522010-05-11 19:42:16 +000068 std::set<int>::const_iterator k = i;
69 assert(i == k);
70 for (int j = 1; j <= m.size(); ++j, ++i)
71 assert(*i == j);
72 }
73 {
74 typedef int V;
75 V ar[] =
76 {
77 1,
78 1,
79 1,
80 2,
81 2,
82 2,
83 3,
84 3,
85 3,
86 4,
87 4,
88 4,
89 5,
90 5,
91 5,
92 6,
93 6,
94 6,
95 7,
96 7,
97 7,
98 8,
99 8,
100 8
101 };
102 const std::set<int> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
103 assert(std::distance(m.begin(), m.end()) == m.size());
104 assert(std::distance(m.cbegin(), m.cend()) == m.size());
105 assert(std::distance(m.rbegin(), m.rend()) == m.size());
106 assert(std::distance(m.crbegin(), m.crend()) == m.size());
Howard Hinnant27745452011-01-28 23:46:28 +0000107 std::set<int, double>::const_iterator i;
108 i = m.begin();
Howard Hinnant3e519522010-05-11 19:42:16 +0000109 for (int j = 1; j <= m.size(); ++j, ++i)
110 assert(*i == j);
111 }
112}