set_iterator_t set_rbegin(const set_t* cpset_set) { set_iterator_t it_rbegin; assert(cpset_set != NULL); #ifdef CSTL_SET_AVL_TREE it_rbegin = _avl_tree_rbegin(&cpset_set->_t_tree); #else it_rbegin = _rb_tree_rbegin(&cpset_set->_t_tree); #endif _ITERATOR_CONTAINER(it_rbegin) = (set_t*)cpset_set; _SET_ITERATOR_CONTAINER_TYPE(it_rbegin) = _SET_CONTAINER; _SET_ITERATOR_ITERATOR_TYPE(it_rbegin) = _BIDIRECTIONAL_ITERATOR; return it_rbegin; }
multimap_reverse_iterator_t multimap_rbegin(const multimap_t* cpt_multimap) { multimap_reverse_iterator_t t_newiterator; assert(cpt_multimap != NULL); #ifdef CSTL_MULTIMAP_AVL_TREE t_newiterator = _avl_tree_rbegin(_GET_MULTIMAP_AVL_TREE(cpt_multimap)); #else t_newiterator = _rb_tree_rbegin(_GET_MULTIMAP_RB_TREE(cpt_multimap)); #endif _GET_CONTAINER(&t_newiterator) = (multimap_t*)cpt_multimap; _GET_MULTIMAP_CONTAINER_TYPE(&t_newiterator) = _MULTIMAP_CONTAINER; _GET_MULTIMAP_ITERATOR_TYPE(&t_newiterator) = _BIDIRECTIONAL_ITERATOR; return t_newiterator; }
map_reverse_iterator_t map_rbegin(const map_t* cpmap_map) { map_reverse_iterator_t it_rbegin; assert(cpmap_map != NULL); assert(_pair_is_inited(&cpmap_map->_pair_temp)); #ifdef CSTL_MAP_AVL_TREE it_rbegin = _avl_tree_rbegin(&cpmap_map->_t_tree); #else it_rbegin = _rb_tree_rbegin(&cpmap_map->_t_tree); #endif _GET_CONTAINER(it_rbegin) = (map_t*)cpmap_map; _GET_MAP_CONTAINER_TYPE(it_rbegin) = _MAP_CONTAINER; _GET_MAP_ITERATOR_TYPE(it_rbegin) = _BIDIRECTIONAL_ITERATOR; return it_rbegin; }