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