Example #1
0
static void print_vector2(c_iterator first, c_iterator last)
{
    c_iterator iter;
    printf("vector is :\n"); 
    for(iter = first;
          !ITER_EQUAL(iter, last); ITER_INC(iter))
    {
        if(ITER_REF(iter))
            printf("\t%d\n", *((int *)(ITER_REF(iter))));
    }
} 
Example #2
0
static int print_map(c_pmap pt)
{
	c_iterator iter = c_map_begin(pt);
	c_iterator end = c_map_end(pt);
	printf("map is:\n");
	for(; !ITER_EQUAL(iter, end); ITER_INC(iter))
	{
		printf("key = %d, value = %d\n",
			*(int*)((c_ppair)ITER_REF(iter))->first,
			*(int*)((c_ppair)ITER_REF(iter))->second);
	}
	return 0;
}
Example #3
0
static void vector_equal(c_vector * p)
{
    c_iterator iter;
    int * old;
    c_vector vt;
    __c_vector(&vt, int_comparer);
    
    print_vector(&vt);
    print_vector(p);
    printf(c_vector_equal(&vt, p) ? "IS equal\n" : "NOT equal\n");
    
    create_with_push_back(&vt);
    print_vector(&vt);
    print_vector(p);
    printf(c_vector_equal(&vt, p) ? "IS equal\n" : "NOT equal\n");
    
    iter = c_vector_begin(&vt);
    old = (int*)ITER_REF(iter); 
    ITER_REF_ASSIGN(iter, &array[5]);
    print_vector(&vt);
    print_vector(p);
    printf(c_vector_equal(&vt, p) ? "IS equal\n" : "NOT equal\n");       
    ITER_REF_ASSIGN(iter, old);
    
    c_vector_clear(&vt);
    c_vector_clear(p);
    print_vector(&vt);
    print_vector(p);
    printf(c_vector_equal(&vt, p) ? "IS equal\n" : "NOT equal\n");
    __c_rotcev(&vt);
}
Example #4
0
static int print_queue(c_pqueue ps)
{
	c_vector tmpvt;
	__c_vector(&tmpvt, int_comparer);

	printf("queue is : \n");
	while(!c_queue_empty(ps))
	{
		int * tmp = c_queue_front(ps);
		printf("front is : %d, size is : %d, back is : %d\n", 
				*tmp, 
				c_queue_size(ps),
				*(int *)c_queue_back(ps));
		c_queue_pop(ps);
		c_vector_push_back(&tmpvt, tmp);
	}

	// recover queue
	do
	{
		c_iterator iter = c_vector_begin(&tmpvt);
		c_iterator end = c_vector_end(&tmpvt);
		for(; !ITER_EQUAL(iter, end); ITER_INC(iter))
		{
			c_queue_push(ps, ITER_REF(iter));
		}
	} while(0);	

	__c_rotcev(&tmpvt);
	return 0;
}
Example #5
0
static int test_reverse_find_erase(c_pmap thiz)
{
	int j = 0;
	for(j = sizeof(keys) / sizeof(int) - 1; j >= 0; -- j)
	{
		c_iterator target, map_end;	
		printf("j = %d\n", j);

		target = c_map_find(thiz, &keys[j]); // set same as map
		
		map_end = c_map_end(thiz);
		if(!ITER_EQUAL(map_end, target))
		{			
			printf("to erase : %d\n", *(int*)(((c_ppair)ITER_REF(target))->first));
			assert_valid_iter(thiz, target);
			c_map_erase(thiz, target);
			assert(__c_rb_tree_verify(thiz->_l));
		}			
	}
	return 0;	
}
Example #6
0
static void* __map_next(Iterator *iter){
	c_ppair result = (c_ppair)ITER_REF(*iter);
	ITER_INC(*iter);
	return result->first;
}