/** * Create new basic_string iterator. */ basic_string_iterator_t _create_basic_string_iterator(void) { basic_string_iterator_t it_new = _create_vector_iterator(); _GET_BASIC_STRING_CONTAINER_TYPE(it_new) = _BASIC_STRING_CONTAINER; return it_new; }
/** * Return a iterator that points just beyond the end of vector container. */ vector_iterator_t vector_end(const vector_t* cpvec_vector) { vector_iterator_t it_end; assert(cpvec_vector != NULL); assert(_vector_is_inited(cpvec_vector)); it_end = _create_vector_iterator(); _ITERATOR_CONTAINER(it_end) = (vector_t*)cpvec_vector; _VECTOR_ITERATOR_COREPOS(it_end) = cpvec_vector->_pby_finish; return it_end; }
vector_reverse_iterator_t vector_rend(const vector_t* cpvec_vector) { vector_reverse_iterator_t it_rend; assert(cpvec_vector != NULL); assert(_vector_is_inited(cpvec_vector)); it_rend = _create_vector_iterator(); _ITERATOR_CONTAINER(it_rend) = (vector_t*)cpvec_vector; _VECTOR_ITERATOR_COREPOS(it_rend) = cpvec_vector->_pby_start - _GET_VECTOR_TYPE_SIZE(cpvec_vector); return it_rend; }
/** * Return a iterator to the first element in the vector container. */ vector_iterator_t vector_begin(const vector_t* cpvec_vector) { vector_iterator_t it_begin; /* new vector iterator */ assert(cpvec_vector != NULL); assert(_vector_is_inited(cpvec_vector)); it_begin = _create_vector_iterator(); _ITERATOR_CONTAINER(it_begin) = (vector_t*)cpvec_vector; _VECTOR_ITERATOR_COREPOS(it_begin) = cpvec_vector->_pby_start; return it_begin; }