/** * Return iterator reference previous element. */ set_iterator_t _set_iterator_prev(set_iterator_t it_iter) { assert(_GET_SET_CONTAINER_TYPE(it_iter) == _SET_CONTAINER); assert(_GET_SET_ITERATOR_TYPE(it_iter) == _BIDIRECTIONAL_ITERATOR); #ifdef CSTL_SET_AVL_TREE return _avl_tree_iterator_prev(it_iter); #else return _rb_tree_iterator_prev(it_iter); #endif }
void _multimap_iterator_prev( const struct _tagmultimap* cpt_multimap, multimap_iterator_t* pt_iterator) { assert(cpt_multimap != NULL && pt_iterator != NULL); assert( _GET_MULTIMAP_CONTAINER_TYPE(pt_iterator) == _MULTIMAP_CONTAINER && _GET_MULTIMAP_ITERATOR_TYPE(pt_iterator) == _BIDIRECTIONAL_ITERATOR && _GET_MULTIMAP_CONTAINER(pt_iterator) == cpt_multimap); #ifdef CSTL_MULTIMAP_AVL_TREE _avl_tree_iterator_prev(_GET_MULTIMAP_AVL_TREE(cpt_multimap), pt_iterator); #else _rb_tree_iterator_prev(_GET_MULTIMAP_RB_TREE(cpt_multimap), pt_iterator); #endif }