Exemple #1
0
set_iterator_t set_rend(const set_t* cpset_set)
{
    set_iterator_t it_rend;

    assert(cpset_set != NULL);

#ifdef CSTL_SET_AVL_TREE
    it_rend = _avl_tree_rend(&cpset_set->_t_tree);
#else
    it_rend = _rb_tree_rend(&cpset_set->_t_tree);
#endif

    _ITERATOR_CONTAINER(it_rend) = (set_t*)cpset_set;
    _SET_ITERATOR_CONTAINER_TYPE(it_rend) = _SET_CONTAINER;
    _SET_ITERATOR_ITERATOR_TYPE(it_rend) = _BIDIRECTIONAL_ITERATOR;

    return it_rend;
}
Exemple #2
0
multimap_reverse_iterator_t multimap_rend(const multimap_t* cpt_multimap)
{
    multimap_reverse_iterator_t t_newiterator;

    assert(cpt_multimap != NULL);

#ifdef CSTL_MULTIMAP_AVL_TREE
    t_newiterator = _avl_tree_rend(_GET_MULTIMAP_AVL_TREE(cpt_multimap));
#else
    t_newiterator = _rb_tree_rend(_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;
}
Exemple #3
0
map_reverse_iterator_t map_rend(const map_t* cpmap_map)
{
    map_reverse_iterator_t it_rend;

    assert(cpmap_map != NULL);
    assert(_pair_is_inited(&cpmap_map->_pair_temp));

#ifdef CSTL_MAP_AVL_TREE
    it_rend = _avl_tree_rend(&cpmap_map->_t_tree);
#else
    it_rend = _rb_tree_rend(&cpmap_map->_t_tree);
#endif

    _GET_CONTAINER(it_rend) = (map_t*)cpmap_map;
    _GET_MAP_CONTAINER_TYPE(it_rend) = _MAP_CONTAINER;
    _GET_MAP_ITERATOR_TYPE(it_rend) = _BIDIRECTIONAL_ITERATOR;

    return it_rend;
}