/** * Test the type that saved in the vector container and referenced by it_iter are same. */ bool_t _vector_same_vector_iterator_type(const vector_t* cpvec_vector, vector_iterator_t it_iter) { assert(cpvec_vector != NULL); assert(_VECTOR_ITERATOR_CONTAINER(it_iter) != NULL); assert(_VECTOR_ITERATOR_CONTAINER_TYPE(it_iter) == _VECTOR_CONTAINER); assert(_VECTOR_ITERATOR_ITERATOR_TYPE(it_iter) == _RANDOM_ACCESS_ITERATOR); return _vector_same_type(cpvec_vector, _VECTOR_ITERATOR_CONTAINER(it_iter)); }
/** * Create new vector iterator. */ vector_iterator_t _create_vector_iterator(void) { vector_iterator_t it_iter; _VECTOR_ITERATOR_COREPOS(it_iter) = NULL; _ITERATOR_CONTAINER(it_iter) = NULL; _VECTOR_ITERATOR_CONTAINER_TYPE(it_iter) = _VECTOR_CONTAINER; _VECTOR_ITERATOR_ITERATOR_TYPE(it_iter) = _RANDOM_ACCESS_ITERATOR; return it_iter; }
/** * Test iterator referenced data is within the vector. */ bool_t _vector_iterator_belong_to_vector(const vector_t* cpvec_vector, vector_iterator_t it_iter) { assert(cpvec_vector != NULL); assert(_vector_is_inited(cpvec_vector)); assert(_VECTOR_ITERATOR_ITERATOR_TYPE(it_iter) == _RANDOM_ACCESS_ITERATOR); assert(_VECTOR_ITERATOR_CONTAINER_TYPE(it_iter) == _VECTOR_CONTAINER); assert(_VECTOR_ITERATOR_CONTAINER(it_iter) == cpvec_vector); if (_VECTOR_ITERATOR_COREPOS(it_iter) >= cpvec_vector->_pby_start && _VECTOR_ITERATOR_COREPOS(it_iter) <= cpvec_vector->_pby_finish) { return true; } else { return false; } }