コード例 #1
0
ファイル: vector.c プロジェクト: AlexShiLucky/tbox
static tb_size_t tb_vector_replace_test()
{
    // init
    tb_vector_ref_t vector = tb_vector_init(TB_VECTOR_GROW_SIZE, tb_element_long());
    tb_assert_and_check_return_val(vector, 0);

    tb_size_t n = 10000;
    tb_vector_ninsert_head(vector, (tb_pointer_t)0xf, n);
    __tb_volatile__ tb_size_t itor = tb_iterator_head(vector);
    __tb_volatile__ tb_size_t tail = tb_iterator_tail(vector);
    tb_hong_t t = tb_mclock();
    for (; itor != tail; itor = tb_iterator_next(vector, itor)) tb_vector_replace(vector, itor, (tb_pointer_t)0xd);
    t = tb_mclock() - t;

    // time
    tb_trace_i("tb_vector_replace(%lu): %lld ms, size: %lu, maxn: %lu", n, t, tb_vector_size(vector), tb_vector_maxn(vector));

    // check
    tb_assert(tb_vector_size(vector) == n);
    tb_assert(tb_vector_head(vector) == (tb_pointer_t)0xd);
    tb_assert(tb_vector_last(vector) == (tb_pointer_t)0xd);

    // exit
    tb_vector_exit(vector);

    return n / ((tb_uint32_t)(t) + 1);
}
コード例 #2
0
ファイル: vector.c プロジェクト: 1060460048/tbox
tb_void_t tb_vector_replace_last(tb_vector_ref_t vector, tb_cpointer_t data)
{
    // check
    tb_vector_impl_t* impl = (tb_vector_impl_t*)vector;
    tb_assert_and_check_return(impl && impl->size);

    // replace
    tb_vector_replace(vector, impl->size - 1, data);
}
コード例 #3
0
ファイル: vector.c プロジェクト: 1060460048/tbox
tb_void_t tb_vector_replace_head(tb_vector_ref_t vector, tb_cpointer_t data)
{
    tb_vector_replace(vector, 0, data);
}