lower_bound.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <set> 11 12// class set 13 14// iterator lower_bound(const key_type& k); 15// const_iterator lower_bound(const key_type& k) const; 16 17#include <set> 18#include <cassert> 19 20int main() 21{ 22 typedef int V; 23 typedef std::set<int> M; 24 { 25 typedef M::iterator R; 26 V ar[] = 27 { 28 5, 29 7, 30 9, 31 11, 32 13, 33 15, 34 17, 35 19 36 }; 37 M m(ar, ar+sizeof(ar)/sizeof(ar[0])); 38 R r = m.lower_bound(5); 39 assert(r == m.begin()); 40 r = m.lower_bound(7); 41 assert(r == next(m.begin())); 42 r = m.lower_bound(9); 43 assert(r == next(m.begin(), 2)); 44 r = m.lower_bound(11); 45 assert(r == next(m.begin(), 3)); 46 r = m.lower_bound(13); 47 assert(r == next(m.begin(), 4)); 48 r = m.lower_bound(15); 49 assert(r == next(m.begin(), 5)); 50 r = m.lower_bound(17); 51 assert(r == next(m.begin(), 6)); 52 r = m.lower_bound(19); 53 assert(r == next(m.begin(), 7)); 54 r = m.lower_bound(4); 55 assert(r == next(m.begin(), 0)); 56 r = m.lower_bound(6); 57 assert(r == next(m.begin(), 1)); 58 r = m.lower_bound(8); 59 assert(r == next(m.begin(), 2)); 60 r = m.lower_bound(10); 61 assert(r == next(m.begin(), 3)); 62 r = m.lower_bound(12); 63 assert(r == next(m.begin(), 4)); 64 r = m.lower_bound(14); 65 assert(r == next(m.begin(), 5)); 66 r = m.lower_bound(16); 67 assert(r == next(m.begin(), 6)); 68 r = m.lower_bound(18); 69 assert(r == next(m.begin(), 7)); 70 r = m.lower_bound(20); 71 assert(r == next(m.begin(), 8)); 72 } 73 { 74 typedef M::const_iterator R; 75 V ar[] = 76 { 77 5, 78 7, 79 9, 80 11, 81 13, 82 15, 83 17, 84 19 85 }; 86 const M m(ar, ar+sizeof(ar)/sizeof(ar[0])); 87 R r = m.lower_bound(5); 88 assert(r == m.begin()); 89 r = m.lower_bound(7); 90 assert(r == next(m.begin())); 91 r = m.lower_bound(9); 92 assert(r == next(m.begin(), 2)); 93 r = m.lower_bound(11); 94 assert(r == next(m.begin(), 3)); 95 r = m.lower_bound(13); 96 assert(r == next(m.begin(), 4)); 97 r = m.lower_bound(15); 98 assert(r == next(m.begin(), 5)); 99 r = m.lower_bound(17); 100 assert(r == next(m.begin(), 6)); 101 r = m.lower_bound(19); 102 assert(r == next(m.begin(), 7)); 103 r = m.lower_bound(4); 104 assert(r == next(m.begin(), 0)); 105 r = m.lower_bound(6); 106 assert(r == next(m.begin(), 1)); 107 r = m.lower_bound(8); 108 assert(r == next(m.begin(), 2)); 109 r = m.lower_bound(10); 110 assert(r == next(m.begin(), 3)); 111 r = m.lower_bound(12); 112 assert(r == next(m.begin(), 4)); 113 r = m.lower_bound(14); 114 assert(r == next(m.begin(), 5)); 115 r = m.lower_bound(16); 116 assert(r == next(m.begin(), 6)); 117 r = m.lower_bound(18); 118 assert(r == next(m.begin(), 7)); 119 r = m.lower_bound(20); 120 assert(r == next(m.begin(), 8)); 121 } 122} 123