Esempio n. 1
0
/**
 * Inserts an array of unique element into a hash_multimap.
 */
void hash_multimap_insert_array(hash_multimap_t* phmmap_map, const void* cpv_array, size_t t_count)
{
    size_t i = 0;

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

    for (i = 0; i < t_count; ++i) {
        assert(_hash_multimap_same_pair_type(&phmmap_map->_pair_temp, ((pair_t**)cpv_array)[i]));
        hash_multimap_insert(phmmap_map, ((pair_t**)cpv_array)[i]);
    }
}
Esempio n. 2
0
/**
 * Inserts an range of unique element into a hash_multimap.
 */
void hash_multimap_insert_range(hash_multimap_t* phmmap_map, iterator_t it_begin, iterator_t it_end)
{
    iterator_t it_iter;

    assert(phmmap_map != NULL);
    assert(_pair_is_inited(&phmmap_map->_pair_temp));
    assert(iterator_equal(it_begin, it_end) || _iterator_before(it_begin, it_end));

    for (it_iter = it_begin; !iterator_equal(it_iter, it_end); it_iter = iterator_next(it_iter)) {
        assert(_hash_multimap_same_pair_type(&phmmap_map->_pair_temp, (pair_t*)iterator_get_pointer(it_iter)));
        hash_multimap_insert(phmmap_map, (pair_t*)iterator_get_pointer(it_iter));
    }
}
Esempio n. 3
0
/**
 * Inserts an range of unique element into a hash_multimap.
 */
void hash_multimap_insert_range(hash_multimap_t* phmmap_map, hash_multimap_iterator_t it_begin, hash_multimap_iterator_t it_end)
{
    hash_multimap_iterator_t it_iter;

    assert(phmmap_map != NULL);
    assert(_pair_is_inited(&phmmap_map->_pair_temp));
    assert(_GET_HASH_MULTIMAP_CONTAINER_TYPE(it_begin) == _HASH_MULTIMAP_CONTAINER);
    assert(_GET_HASH_MULTIMAP_ITERATOR_TYPE(it_begin) == _BIDIRECTIONAL_ITERATOR);
    assert(_GET_HASH_MULTIMAP_CONTAINER_TYPE(it_end) == _HASH_MULTIMAP_CONTAINER);
    assert(_GET_HASH_MULTIMAP_ITERATOR_TYPE(it_end) == _BIDIRECTIONAL_ITERATOR);
    assert(_GET_HASH_MULTIMAP_CONTAINER(it_begin) != phmmap_map);
    assert(_GET_HASH_MULTIMAP_CONTAINER(it_end) != phmmap_map);
    assert(_GET_HASH_MULTIMAP_CONTAINER(it_begin) == _GET_HASH_MULTIMAP_CONTAINER(it_end));
    assert(_hash_multimap_same_pair_type(&phmmap_map->_pair_temp, &_GET_HASH_MULTIMAP_CONTAINER(it_begin)->_pair_temp));

    for(it_iter = it_begin; !iterator_equal(it_iter, it_end); it_iter = iterator_next(it_iter))
    {
        hash_multimap_insert(phmmap_map, (pair_t*)iterator_get_pointer(it_iter));
    }
}