/** * 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]); } }
/** * 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)); } }
/** * 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)); } }