/**
 * Create new basic_string iterator.
 */
basic_string_iterator_t _create_basic_string_iterator(void)
{
    basic_string_iterator_t it_new = _create_vector_iterator();
    _GET_BASIC_STRING_CONTAINER_TYPE(it_new) = _BASIC_STRING_CONTAINER;

    return it_new;
}
Exemplo n.º 2
0
/**
 * Return a iterator that points just beyond the end of vector container.
 */
vector_iterator_t vector_end(const vector_t* cpvec_vector)
{
    vector_iterator_t it_end;

    assert(cpvec_vector != NULL);
    assert(_vector_is_inited(cpvec_vector));

    it_end = _create_vector_iterator();
    _ITERATOR_CONTAINER(it_end) = (vector_t*)cpvec_vector;
    _VECTOR_ITERATOR_COREPOS(it_end) = cpvec_vector->_pby_finish;

    return it_end;
}
Exemplo n.º 3
0
vector_reverse_iterator_t vector_rend(const vector_t* cpvec_vector)
{
    vector_reverse_iterator_t it_rend;

    assert(cpvec_vector != NULL);
    assert(_vector_is_inited(cpvec_vector));

    it_rend = _create_vector_iterator();
    _ITERATOR_CONTAINER(it_rend) = (vector_t*)cpvec_vector;
    _VECTOR_ITERATOR_COREPOS(it_rend) = cpvec_vector->_pby_start - _GET_VECTOR_TYPE_SIZE(cpvec_vector);

    return it_rend;
}
Exemplo n.º 4
0
/**
 * Return a iterator to the first element in the vector container.
 */
vector_iterator_t vector_begin(const vector_t* cpvec_vector)
{
    vector_iterator_t it_begin; /* new vector iterator */

    assert(cpvec_vector != NULL);
    assert(_vector_is_inited(cpvec_vector));

    it_begin = _create_vector_iterator();
    _ITERATOR_CONTAINER(it_begin) = (vector_t*)cpvec_vector;
    _VECTOR_ITERATOR_COREPOS(it_begin) = cpvec_vector->_pby_start;

    return it_begin;
}