insert_iter_iter_iter.pass.cpp revision 0d5dff18974650a994e020eda4ba6fe4c16808f9
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// <vector> 11// vector<bool> 12 13// template <class Iter> 14// iterator insert(const_iterator position, Iter first, Iter last); 15 16#include <vector> 17#include <cassert> 18#include "../../iterators.h" 19 20int main() 21{ 22 { 23 std::vector<bool> v(100); 24 bool a[] = {1, 0, 0, 1, 1}; 25 const unsigned N = sizeof(a)/sizeof(a[0]); 26 std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, input_iterator<const bool*>(a), 27 input_iterator<const bool*>(a+N)); 28 assert(v.size() == 100 + N); 29 assert(i == v.begin() + 10); 30 int j; 31 for (j = 0; j < 10; ++j) 32 assert(v[j] == 0); 33 for (int k = 0; k < N; ++j, ++k) 34 assert(v[j] == a[k]); 35 for (; j < 105; ++j) 36 assert(v[j] == 0); 37 } 38 { 39 std::vector<bool> v(100); 40 bool a[] = {1, 0, 0, 1, 1}; 41 const unsigned N = sizeof(a)/sizeof(a[0]); 42 std::vector<bool>::iterator i = v.insert(v.cbegin() + 10, forward_iterator<const bool*>(a), 43 forward_iterator<const bool*>(a+N)); 44 assert(v.size() == 100 + N); 45 assert(i == v.begin() + 10); 46 int j; 47 for (j = 0; j < 10; ++j) 48 assert(v[j] == 0); 49 for (int k = 0; k < N; ++j, ++k) 50 assert(v[j] == a[k]); 51 for (; j < 105; ++j) 52 assert(v[j] == 0); 53 } 54} 55