示例#1
0
/**
 * Return iterator reference previous element.
 */
set_iterator_t _set_iterator_prev(set_iterator_t it_iter)
{
    assert(_GET_SET_CONTAINER_TYPE(it_iter) == _SET_CONTAINER);
    assert(_GET_SET_ITERATOR_TYPE(it_iter) == _BIDIRECTIONAL_ITERATOR); 

#ifdef CSTL_SET_AVL_TREE
    return _avl_tree_iterator_prev(it_iter);
#else
    return _rb_tree_iterator_prev(it_iter);
#endif
}
示例#2
0
void _multimap_iterator_prev(
    const struct _tagmultimap* cpt_multimap, multimap_iterator_t* pt_iterator)
{
    assert(cpt_multimap != NULL && pt_iterator != NULL);
    assert(
        _GET_MULTIMAP_CONTAINER_TYPE(pt_iterator) == _MULTIMAP_CONTAINER &&
        _GET_MULTIMAP_ITERATOR_TYPE(pt_iterator) == _BIDIRECTIONAL_ITERATOR &&
        _GET_MULTIMAP_CONTAINER(pt_iterator) == cpt_multimap);

#ifdef CSTL_MULTIMAP_AVL_TREE
    _avl_tree_iterator_prev(_GET_MULTIMAP_AVL_TREE(cpt_multimap), pt_iterator);
#else
    _rb_tree_iterator_prev(_GET_MULTIMAP_RB_TREE(cpt_multimap), pt_iterator);
#endif
}