当前位置: 首页>>代码示例>>C++>>正文


C++ set_init函数代码示例

本文整理汇总了C++中set_init函数的典型用法代码示例。如果您正苦于以下问题:C++ set_init函数的具体用法?C++ set_init怎么用?C++ set_init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了set_init函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(void) 
{
  set s1, s2;
  int m = 10;

  s1 = set_init(m);
  set_add(s1, 1);
  set_add(s1, 3);
  set_add(s1, 5);
  s2 = set_init(m + 2);
  set_add(s2, 0);
  set_add(s2, 2);
  set_add(s2, 3);
  set_add(s2, 4);
  set_add(s2, 5);
  set_add(s2, 11);
  set_print(s1);
  printf("\n");
  set_print(s2);
  printf("\nIntersection: ");
  set_print(set_intersection(s1, s2));
  printf("\nUnion: ");
  set_print(set_union(s1, s2));
  printf("\nComplement for s2: ");
  set_print(set_complement(s2));
  printf("\n");  
  return 0;
}
开发者ID:KnightSch,项目名称:Sedgewick-algorithms-in-c-exercises-and-examples,代码行数:28,代码来源:main.c

示例2: Malloc

QAP_solution_t *ant_build_solution(QAP_t *p){

    int i, j, lct, flt;
    set_t set_lct, set_flt; 
    QAP_solution_t *sol;

    sol = Malloc(sizeof(QAP_solution_t));

    set_init(&set_lct, p->size);
    set_init(&set_flt, p->size);

    /* flt: facility */
    for (i = 0; i < p->size; i++){
        lct = next_location(&set_lct);       
        flt = next_facility(p, &set_flt, lct);
        sol->perm[lct] = flt;
    }

    sol->cst = 0;
    for (i = 0; i < p->size; i++){
        for (j = i;  j < p->size; j++){
            sol->cst += p->dist[i][j] * p->flow[sol->perm[i]][sol->perm[j]];
            if (i != j){
                sol->cst += p->dist[j][i] * p->flow[sol->perm[j]][sol->perm[i]];
            }
        }
    }

    return sol;
}
开发者ID:gpolo,项目名称:QAP,代码行数:30,代码来源:ant.c

示例3: set_test

void
set_test()
{
	printf("SET S: ");
	set* s = set_init();
	set_add(s, (SETDATA*)1);
	set_add(s, (SETDATA*)2);
	set_add(s, (SETDATA*)3);
	set_add(s, (SETDATA*)4);
	set_add(s, (SETDATA*)5);
	set_add(s, (SETDATA*)6);
	set_print(s, set_testcb);

	printf("S \\ 2, 6: ");
	set_remove(s, (SETDATA*)6);
	set_remove(s, (SETDATA*)2);
	set_print(s, set_testcb);
	
	printf("SET T: ");
	set* t = set_init();
	set_add(t, (SETDATA*)1);
	set_add(t, (SETDATA*)2);
	set_add(t, (SETDATA*)9);
	set_add(t, (SETDATA*)4);
	set_print(t, set_testcb);
	
	printf("UNION OF S, T: ");
	set* u = set_init();
	set_union(u, s, t);
	set_print(u, set_testcb);
	
	printf("INTERSECTION OF S, T: ");
	set* i = set_init();
	set_intersection(i, s, t);
	set_print(i, set_testcb);
	
	printf("DIFFERENCE OF S, T: ");
	set* d = set_init();
	set_difference(d, s, t);
	set_print(d, set_testcb);
	
	printf("CLEAR S: ");
	set_clear(s);
	set_print(s, set_testcb);
	
	set_free(s);
	set_free(t);
	set_free(u);
	set_free(i);
	set_free(d);
}
开发者ID:Zugamifk,项目名称:fishermans,代码行数:51,代码来源:set.c

示例4: grabContent

/* Does not detect loops, but they should not happen anyway */
int
grabContent(char *xml, char *url, struct crawlinfo *ci, set *acl_allow, set *acl_deny, char *usersid, CURL **curl, struct loginInfoFormat *login)
{
	acl_allow = malloc(sizeof(*acl_allow));
	acl_deny = malloc(sizeof(*acl_deny));
	set_init(acl_allow);
	set_init(acl_deny);
	getEmailUrls(xml, ci, url, acl_allow, acl_deny, usersid, curl, login);
	set_free_all(acl_allow);
	set_free_all(acl_deny);
	free(acl_allow);
	free(acl_deny);

	return 1;
}
开发者ID:Web5design,项目名称:enterprise-search,代码行数:16,代码来源:main.c

示例5: main

int main()
{
	char op;
	while (scanf("%c", &op) != EOF)
	{
		if (op < 'a')
		{
			op += 'a' - 'A';
		}
		switch (op)
		{
			case 'd':
			{
				getlinenum();
				n = argv[1];
				set_init(n);
				/*if (n > 6000000)
				{
					for (;;);
				}*/
				break;
			}
			case 'c':
			{
				int i, st, ed;
				getlinenum();
				for (i = 1, st = argv[1], ed = argv[2]; (i <= argv[3])/* && (st <= n) && (ed <= n) && (st > 0) && (ed > 0) */; ++i, st += argv[5], ed += argv[4])
				{
					set_connect(st, ed);
				}
				break;
			}
			case 'q':
			{
				int i, st, ed;
				int s1 = 0;
				int s2 = 0;
				getlinenum();
				for (i = 1, st = argv[1], ed = argv[2]; (i <= argv[3])/* && (st <= n) && (ed <= n) && (st > 0) && (ed > 0) */; ++i, st += argv[5], ed += argv[4])
				{
					if (set_isconnect(st, ed))
					{
						++s1;
					}
					else
					{
						++s2;
					}
				}
				printf("%d - %d\n", s1, s2);
				break;
			}
			default:
			{
				break;
			}
		}
	}
	return 0;
}
开发者ID:thebeet,项目名称:online_judge_solution,代码行数:60,代码来源:2545595_TLE.cpp

示例6: set_intersection

int set_intersection(Set *seti, const Set *set1, const Set *set2)
{
        ListElmt *member;
        void *data;

        /*
         * Initialize set
         */
        set_init(seti, set1->match, NULL);

        /*
         * Insert elements that are in both sets
         */
        member = list_head(set1);
        for ( ; member != NULL; member = list_next(member)) {
                if (set_is_member(set2, list_data(member))) {
                        data = list_data(member);

                        if (list_ins_next(seti, list_tail(seti), data) != 0) {
                                set_destroy(seti);
                                return -1;
                        }
                }
        }

        return 0;
}
开发者ID:rjose,项目名称:products,代码行数:27,代码来源:set.c

示例7: set_difference

int set_difference(Set *setd, const Set *set1, const Set *set2)
{
        ListElmt *member;
        void *data;

        /*
         * Initialize set
         */
        set_init(setd, set1->match, NULL);

        /*
         * Insert elements that are in set1 but not set2
         */
        member = list_head(set1);
        for ( ; member != NULL; member = list_next(member)) {
                if (!set_is_member(set2, list_data(member))) {
                        data = list_data(member);

                        if (list_ins_next(setd, list_tail(setd), data) != 0) {
                                set_destroy(setd);
                                return -1;
                        }
                }
        }

        return 0;
}
开发者ID:rjose,项目名称:products,代码行数:27,代码来源:set.c

示例8: map_add

/* add an entry to the map */
static void map_add(map_t *m, const char *key, const char *val)
{
    mapnode_t *tmp;
    unsigned int idx;

    if (!m) return;

    idx = hash_func(key) % m->nbuckets;
    tmp = m->buckets + idx;
    while (tmp->next != NULL) {
        if (strcmp(tmp->key,key) == 0) break;
        tmp = tmp->next;
    }

    /* add new entry to map */
    if (tmp->next == NULL) {
        m->count ++;
        tmp->key = my_strdup(key);
        tmp->val = set_init(50); /* XXX: chosen arbitrarily */
        tmp->next = (mapnode_t *)malloc(sizeof(mapnode_t));
        tmp->next->key = NULL;
        tmp->next->val = NULL;
        tmp->next->next = NULL;
    }
    set_add(tmp->val,val);
}
开发者ID:TempleHPC,项目名称:maui-scheduler,代码行数:27,代码来源:fastdep.c

示例9: set_union

int set_union(Set *st, const Set *st1, const Set *st2){
	set_init(st, st1->destroy, st1->match);

	Node *pCurrentNode = list_head(st1);
	while(pCurrentNode){
		/* trust use's st1 is a really set(no duplicate node) */
		if(list_push(st, list_node_data(pCurrentNode)) != 0){
			set_destroy(st);
			return -1;
		}
		pCurrentNode = list_node_next(pCurrentNode);
	}

	pCurrentNode = list_head(st2);
	while(pCurrentNode){
		if(!set_is_member(st, list_node_data(pCurrentNode))){
			if(list_push(st, list_node_data(pCurrentNode)) != 0){
				set_destroy(st);
				return -1;
			}
		}
		pCurrentNode = list_node_next(pCurrentNode);
	}
	return 0;
}
开发者ID:wikty,项目名称:alogrithm,代码行数:25,代码来源:set.c

示例10: set_union

int set_union(Set *setu, const Set *set1, const Set *set2) {
    ListElmt           *member;
    void               *data;
    set_init(setu, set1->match, NULL);
    for (member = list_head(set1); member != NULL; member = list_next(member)) {
        data = list_data(member);
        if (list_ins_next(setu, list_tail(setu), data) != 0) {
            set_destroy(setu);
            return -1;
        }
    }

    for (member = list_head(set2); member != NULL; member = list_next(member)) {
        if (set_is_member(set1, list_data(member))) {
            continue;
        }

        else {
            data = list_data(member);
            if (list_ins_next(setu, list_tail(setu), data) != 0) {
                set_destroy(setu);
                return -1;
            }
        }
    }

    return 0;
}
开发者ID:GoodLuckBamboo,项目名称:Mastering-Algorithms-with-C,代码行数:28,代码来源:set.c

示例11: graph_ins_vertex

/* graph_ins_vertex */
int graph_ins_vertex(Graph *graph, const void *data)
{
	ListElmt *element;
	AdjList *adjlist;
	int retval;

	/* Do not allow the insertion of duplicate vertices. */
	for (element = list_head(&graph->adjlists); element != NULL; 
	     element = list_next(element)) {
		if (graph->match(data, 
			((AdjList *)list_data(element))->vertex)) {
			return 1;
		}
	}

	/* Insert the vertex. */
	if ((adjlist = (AdjList *)malloc(sizeof(AdjList))) == NULL) {
		return -1;
	}

	adjlist->vertex = (void *)data;
	set_init(&adjlist->adjacent, graph->match, NULL);

	if ((retval = list_ins_next(&graph->adjlists, 
		list_tail(&graph->adjlists), adjlist)) != 0) {
		return retval;
	}

	/* Adjust the vertex count to account for the inserted vertex. */
	graph->vcount++;
	return 0;
}
开发者ID:whatot,项目名称:ma_c,代码行数:33,代码来源:graph.c

示例12: main

int
main(int argc, char ** argv)
{
    char * ifilename = "data/sigmafac/sigh.dat";
    int ifd = open(ifilename, 0666);
    void * buf = (void *) malloc(64);
    set * S, * matches;

    letter * p = WORDOF("*GAAT*");
    letter * _p = p;

    S = set_init(32);
    while (read_string(ifd, buf, 64, '\n'))
        if (*((char *) buf) != '\0')
            set_add_member(S, WORDOF((char *)buf));

    matches = pattern_shortest_matches(S, p, _p);

{
unsigned int i;
range_offset * r;
for (i=0; i<matches->members_count; i++)
{
r = (range_offset *)matches->members[i];
printf("%s %d %d\n", pattern_to_printable(r->_word), r->begin, r->end);
}    
}

    printf("%d\n", _find_cutoff_len(matches));
}
开发者ID:kalngyk,项目名称:learn,代码行数:30,代码来源:t.c

示例13: graph_ins_vertex

int graph_ins_vertex(Graph *graph, const void *data)
{
    ListElmt *element;
    AdjList *adjlist;
    int retval;

    // 不允许插入重复顶点
    for (element = list_head(&graph->adjlists); element != NULL; element = list_next(element)) {
        if (graph->match(data, ((AdjList *)list_data(element))->vertex)) {
            return 1;
        }
    }

    // 插入顶点
    if ((adjlist = (AdjList *)malloc(sizeof(AdjList))) == NULL) {
        return -1;
    }

    adjlist->vertex = (void *)data;
    set_init(&adjlist->adjacent, graph->match, NULL);

    if ((retval = list_ins_next(&graph->adjlists, list_tail(&graph->adjlists), adjlist)) != 0) {
        return retval;
    }

    graph->vcount++;
    return 0;
}
开发者ID:AnnatarHe,项目名称:Algorithms-with-c,代码行数:28,代码来源:graph.c

示例14: set_differece

/* set_differece */
int set_differece(Set *setd, const Set *set1, const Set *set2)
{
    ListElmt *member;
    void *data;
    
    /* Initialize the set for the difference. */
    set_init(setd, set1->match, NULL);
    
    /* Insert the member from set1 not in set2. */
    for (member = list_head(set1); member != NULL; member = list_next(member))
    {
        if (!set_is_member(set2, list_data(member)))
        {
            data = list_data(member);
            
            if (list_ins_next(setd, list_tail(setd), data) != 0)
            {
                set_destroy(setd);
                return -1;
            }
        }
    }
    
    return 0;
}
开发者ID:cforth,项目名称:codefarm,代码行数:26,代码来源:set.c

示例15: _type_init_set

/* set_t */
void _type_init_set(const void* cpv_input, void* pv_output)
{
    bool_t b_result = false;
    assert(cpv_input != NULL && pv_output != NULL);

    b_result = _create_set_auxiliary((set_t*)cpv_input, (char*)pv_output);
    assert(b_result);
    set_init((set_t*)cpv_input);
}
开发者ID:ChenHui109,项目名称:libcstl,代码行数:10,代码来源:cstl_types_builtin.c


注:本文中的set_init函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。