Пример #1
0
/**
 * 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));
        }
    }
}
Пример #2
0
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
}
Пример #3
0
/**
 * 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
}
Пример #4
0
/**
 * 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
}
Пример #5
0
/**
 * 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
}