void c_vector_resize(c_pvector thiz, size_t n) { c_iterator begin = c_vector_begin(thiz); if(n < c_vector_size(thiz)) c_vector_erase2(thiz, ITER_POSITIVE_N(begin, n), c_vector_end(thiz)); else c_vector_fill_insert(thiz, c_vector_end(thiz), n, NULL); }
static void erase_vector() { c_vector vt; c_vector * p = &vt; c_iterator i1, i3, i4, i6, i10; __c_vector(&vt, int_comparer); create_with_push_back(&vt); i1 = c_vector_begin(p); print_vector(p); printf("erase last :\n"); i10 = ITER_POSITIVE_N(i1, 10); c_vector_erase(p, i10); print_vector(p); printf("erase middle 1 : \n"); i4 = ITER_POSITIVE_N(i1, 4); c_vector_erase(p, i4); print_vector(p); printf("erase middle n : \n"); i3 = ITER_POSITIVE_N(i1, 3); i6 = ITER_POSITIVE_N(i1, 6); c_vector_erase2(p, i3, i6); print_vector(p); printf("erase first :\n"); c_vector_erase(p, i1); print_vector(p); printf("erase all :\n"); c_vector_erase2(p, c_vector_begin(p), c_vector_end(p)); print_vector(p); __c_rotcev(&vt); }
void c_vector_clear(c_pvector thiz) { c_vector_erase2(thiz, c_vector_begin(thiz), c_vector_end(thiz)); }