erase_iter_iter.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
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 erase(const_iterator first, const_iterator last); 15 16#include <set> 17#include <cassert> 18 19int main() 20{ 21 { 22 typedef std::multiset<int> M; 23 typedef int V; 24 typedef M::iterator I; 25 V ar[] = 26 { 27 1, 28 2, 29 3, 30 4, 31 5, 32 6, 33 7, 34 8 35 }; 36 M m(ar, ar + sizeof(ar)/sizeof(ar[0])); 37 assert(m.size() == 8); 38 I i = m.erase(next(m.cbegin(), 5), next(m.cbegin(), 5)); 39 assert(m.size() == 8); 40 assert(i == next(m.begin(), 5)); 41 assert(*next(m.begin(), 0) == 1); 42 assert(*next(m.begin(), 1) == 2); 43 assert(*next(m.begin(), 2) == 3); 44 assert(*next(m.begin(), 3) == 4); 45 assert(*next(m.begin(), 4) == 5); 46 assert(*next(m.begin(), 5) == 6); 47 assert(*next(m.begin(), 6) == 7); 48 assert(*next(m.begin(), 7) == 8); 49 50 i = m.erase(next(m.cbegin(), 3), next(m.cbegin(), 4)); 51 assert(m.size() == 7); 52 assert(i == next(m.begin(), 3)); 53 assert(*next(m.begin(), 0) == 1); 54 assert(*next(m.begin(), 1) == 2); 55 assert(*next(m.begin(), 2) == 3); 56 assert(*next(m.begin(), 3) == 5); 57 assert(*next(m.begin(), 4) == 6); 58 assert(*next(m.begin(), 5) == 7); 59 assert(*next(m.begin(), 6) == 8); 60 61 i = m.erase(next(m.cbegin(), 2), next(m.cbegin(), 5)); 62 assert(m.size() == 4); 63 assert(i == next(m.begin(), 2)); 64 assert(*next(m.begin(), 0) == 1); 65 assert(*next(m.begin(), 1) == 2); 66 assert(*next(m.begin(), 2) == 7); 67 assert(*next(m.begin(), 3) == 8); 68 69 i = m.erase(next(m.cbegin(), 0), next(m.cbegin(), 2)); 70 assert(m.size() == 2); 71 assert(i == next(m.begin(), 0)); 72 assert(*next(m.begin(), 0) == 7); 73 assert(*next(m.begin(), 1) == 8); 74 75 i = m.erase(m.cbegin(), m.cend()); 76 assert(m.size() == 0); 77 assert(i == m.end()); 78 } 79} 80