/* * Erase a range of element in an multiset. */ void multiset_erase_range(multiset_t* pmset_mset, multiset_iterator_t it_begin, multiset_iterator_t it_end) { assert(pmset_mset != NULL); assert(_MULTISET_ITERATOR_CONTAINER_TYPE(it_begin) == _MULTISET_CONTAINER); assert(_MULTISET_ITERATOR_ITERATOR_TYPE(it_begin) == _BIDIRECTIONAL_ITERATOR); assert(_MULTISET_ITERATOR_CONTAINER_TYPE(it_end) == _MULTISET_CONTAINER); assert(_MULTISET_ITERATOR_ITERATOR_TYPE(it_end) == _BIDIRECTIONAL_ITERATOR); assert(_MULTISET_ITERATOR_CONTAINER(it_begin) == pmset_mset); assert(_MULTISET_ITERATOR_CONTAINER(it_end) == pmset_mset); #ifdef CSTL_MULTISET_AVL_TREE _avl_tree_erase_range(&pmset_mset->_t_tree, it_begin, it_end); #else _rb_tree_erase_range(&pmset_mset->_t_tree, it_begin, it_end); #endif }
/* * Erase a range of element in an set. */ void set_erase_range(set_t* pset_set, set_iterator_t it_begin, set_iterator_t it_end) { assert(pset_set != NULL); assert(_SET_ITERATOR_CONTAINER_TYPE(it_begin) == _SET_CONTAINER); assert(_SET_ITERATOR_ITERATOR_TYPE(it_begin) == _BIDIRECTIONAL_ITERATOR); assert(_SET_ITERATOR_CONTAINER_TYPE(it_end) == _SET_CONTAINER); assert(_SET_ITERATOR_ITERATOR_TYPE(it_end) == _BIDIRECTIONAL_ITERATOR); assert(_SET_ITERATOR_CONTAINER(it_begin) == pset_set); assert(_SET_ITERATOR_CONTAINER(it_end) == pset_set); #ifdef CSTL_SET_AVL_TREE _avl_tree_erase_range(&pset_set->_t_tree, it_begin, it_end); #else _rb_tree_erase_range(&pset_set->_t_tree, it_begin, it_end); #endif }
/* * Erase a range of element in an map. */ void map_erase_range(map_t* pmap_map, map_iterator_t it_begin, map_iterator_t it_end) { assert(pmap_map != NULL); assert(_pair_is_inited(&pmap_map->_pair_temp)); assert(_GET_MAP_CONTAINER_TYPE(it_begin) == _MAP_CONTAINER); assert(_GET_MAP_ITERATOR_TYPE(it_begin) == _BIDIRECTIONAL_ITERATOR); assert(_GET_MAP_CONTAINER_TYPE(it_end) == _MAP_CONTAINER); assert(_GET_MAP_ITERATOR_TYPE(it_end) == _BIDIRECTIONAL_ITERATOR); assert(_GET_MAP_CONTAINER(it_begin) == pmap_map && _GET_MAP_CONTAINER(it_end) == pmap_map); #ifdef CSTL_MAP_AVL_TREE _avl_tree_erase_range(&pmap_map->_t_tree, it_begin, it_end); #else _rb_tree_erase_range(&pmap_map->_t_tree, it_begin, it_end); #endif }
void map_erase_range( map_t* pt_map, map_iterator_t t_begin, map_iterator_t t_end) { assert(pt_map != NULL); assert( _GET_MAP_CONTAINER_TYPE(&t_begin) == _MAP_CONTAINER && _GET_MAP_ITERATOR_TYPE(&t_begin) == _BIDIRECTIONAL_ITERATOR && _GET_MAP_CONTAINER_TYPE(&t_end) == _MAP_CONTAINER && _GET_MAP_ITERATOR_TYPE(&t_end) == _BIDIRECTIONAL_ITERATOR); assert( _GET_MAP_CONTAINER(&t_begin) == pt_map && _GET_MAP_CONTAINER(&t_end) == pt_map); #ifdef CSTL_MAP_AVL_TREE _avl_tree_erase_range(_GET_MAP_AVL_TREE(pt_map), t_begin, t_end); #else _rb_tree_erase_range(_GET_MAP_RB_TREE(pt_map), t_begin, t_end); #endif }