/**
 * Get the pointer that point to the iterator reference data.
 */
const void* _basic_string_iterator_get_pointer(basic_string_iterator_t it_iter)
{
    void* pv_pointer = NULL;

    assert(_GET_BASIC_STRING_CONTAINER_TYPE(it_iter) == _BASIC_STRING_CONTAINER);

    _GET_VECTOR_CONTAINER_TYPE(it_iter) = _VECTOR_CONTAINER;

    pv_pointer = (void*)_vector_iterator_get_pointer(it_iter);

    _GET_BASIC_STRING_CONTAINER_TYPE(it_iter) = _BASIC_STRING_CONTAINER;

    return pv_pointer;
}
/**
 * Get pointer that pointed by iterator.
 */
const void* iterator_get_pointer(iterator_t it_iter)
{
    assert(_iterator_is_valid(it_iter));
    assert(_iterator_limit_type(it_iter, _INPUT_ITERATOR));

    switch (it_iter._t_containertype) {
        case _VECTOR_CONTAINER:
            return _vector_iterator_get_pointer(it_iter);
            break;
        case _LIST_CONTAINER:
            return _list_iterator_get_pointer(it_iter);
            break;
        case _DEQUE_CONTAINER:
            return _deque_iterator_get_pointer(it_iter);
            break;
						/*  
        case _SLIST_CONTAINER:
            return _slist_iterator_get_pointer(it_iter);
            break;
        */
				case _SET_CONTAINER:
            return _set_iterator_get_pointer(it_iter);
            break;
        case _MAP_CONTAINER:
            return _map_iterator_get_pointer(it_iter);
            break;
        case _HASH_SET_CONTAINER:
            return _hash_set_iterator_get_pointer(it_iter);
            break;
        case _HASH_MAP_CONTAINER:
            return _hash_map_iterator_get_pointer(it_iter);
            break;
        case _BASIC_STRING_CONTAINER:
            return _basic_string_iterator_get_pointer(it_iter);
            break;
        default:
            assert(false);
            return NULL;
            break;
    }
}
Exemple #3
0
/**
 * Access iterator reference data randomly with subscript.
 */
void* _vector_iterator_at(vector_iterator_t it_iter, int n_index)
{
    it_iter = _vector_iterator_next_n(it_iter, n_index);
    return (void*)_vector_iterator_get_pointer(it_iter);
}