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 // <vector> 11 // vector<bool> 12 13 // iterator erase(const_iterator first, const_iterator last); 14 15 #include <vector> 16 #include <cassert> 17 18 int main() 19 { 20 bool a1[] = {1, 0, 1}; 21 { 22 std::vector<bool> l1(a1, a1+3); 23 std::vector<bool>::iterator i = l1.erase(l1.cbegin(), l1.cbegin()); 24 assert(l1.size() == 3); 25 assert(distance(l1.cbegin(), l1.cend()) == 3); 26 assert(i == l1.begin()); 27 } 28 { 29 std::vector<bool> l1(a1, a1+3); 30 std::vector<bool>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin())); 31 assert(l1.size() == 2); 32 assert(distance(l1.cbegin(), l1.cend()) == 2); 33 assert(i == l1.begin()); 34 assert(l1 == std::vector<bool>(a1+1, a1+3)); 35 } 36 { 37 std::vector<bool> l1(a1, a1+3); 38 std::vector<bool>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 2)); 39 assert(l1.size() == 1); 40 assert(distance(l1.cbegin(), l1.cend()) == 1); 41 assert(i == l1.begin()); 42 assert(l1 == std::vector<bool>(a1+2, a1+3)); 43 } 44 { 45 std::vector<bool> l1(a1, a1+3); 46 std::vector<bool>::iterator i = l1.erase(l1.cbegin(), next(l1.cbegin(), 3)); 47 assert(l1.size() == 0); 48 assert(distance(l1.cbegin(), l1.cend()) == 0); 49 assert(i == l1.begin()); 50 } 51 } 52