/** * Assign avl tree container. */ void _avl_tree_assign(_avl_tree_t* pt_dest, const _avl_tree_t* cpt_src) { assert(pt_dest != NULL); assert(cpt_src != NULL); assert(_avl_tree_is_inited(pt_dest)); assert(_avl_tree_is_inited(cpt_src)); assert(_avl_tree_same_type_ex(pt_dest, cpt_src)); if (!_avl_tree_equal(pt_dest, cpt_src)) { _avl_tree_iterator_t it_iter; _avl_tree_iterator_t it_begin; _avl_tree_iterator_t it_end; /* clear dest avl tree */ _avl_tree_clear(pt_dest); it_begin = _avl_tree_begin(cpt_src); it_end = _avl_tree_end(cpt_src); /* insert all elements of src into dest */ for (it_iter = it_begin; !_avl_tree_iterator_equal(it_iter, it_end); it_iter = _avl_tree_iterator_next(it_iter)) { _avl_tree_insert_equal(pt_dest, _avl_tree_iterator_get_pointer_ignore_cstr(it_iter)); } } }
void multimap_clear(multimap_t* pt_multimap) { assert(pt_multimap != NULL); #ifdef CSTL_MULTIMAP_AVL_TREE _avl_tree_clear(_GET_MULTIMAP_AVL_TREE(pt_multimap)); #else _rb_tree_clear(_GET_MULTIMAP_RB_TREE(pt_multimap)); #endif }
/** * Erases all the elements of an multiset. */ void multiset_clear(multiset_t* pmset_mset) { assert(pmset_mset != NULL); #ifdef CSTL_MULTISET_AVL_TREE _avl_tree_clear(&pmset_mset->_t_tree); #else _rb_tree_clear(&pmset_mset->_t_tree); #endif }
/** * Erases all the elements of an set. */ void set_clear(set_t* pset_set) { assert(pset_set != NULL); #ifdef CSTL_SET_AVL_TREE _avl_tree_clear(&pset_set->_t_tree); #else _rb_tree_clear(&pset_set->_t_tree); #endif }
/** * Erases all the elements of an map. */ void map_clear(map_t* pmap_map) { assert(pmap_map != NULL); assert(_pair_is_inited(&pmap_map->_pair_temp)); #ifdef CSTL_MAP_AVL_TREE _avl_tree_clear(&pmap_map->_t_tree); #else _rb_tree_clear(&pmap_map->_t_tree); #endif }