• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ create_stack函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: test_non_empty_stack_peek_shows_correct_value

static void test_non_empty_stack_peek_shows_correct_value(void) {
  Stack *stack = create_stack(3);
  push(stack, 8);
  int value = peek(stack);

  assert (8 == value && "peeked value should be 8");
  free(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:8,代码来源:test_stack.c


示例2: test_empty_stack_peek

static void test_empty_stack_peek(void) {
  Stack *stack = create_stack();

  // Note: You can't tell if a stack is empty by simply peeking, you also have
  // to call "is_empty"
  assert (0 == peek(stack) && "peek at empty stack should show 0");
  destroy_stack(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:8,代码来源:test_stack.c


示例3: test_pop_from_empty_stack_fails

static void test_pop_from_empty_stack_fails(void) {
  Stack *stack = create_stack(3);
  BOOL success;
  pop(stack, &success);

  assert (FALSE == success && "pop should fail");
  free(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:8,代码来源:test_stack.c


示例4: test_push_onto_non_empty_stack_size_is_correct

static void test_push_onto_non_empty_stack_size_is_correct(void) {
  Stack *stack = create_stack();
  push(stack, 5);
  push(stack, 4);

  assert (2 == size(stack) && "stack size after pushes should be 2");
  destroy_stack(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:8,代码来源:test_stack.c


示例5: test3

void test3() 
//@ requires true;
//@ ensures true;
{
    struct value* v2, v3;
    struct stack* s = create_stack();
    //@ close foreach(nil, value_helper2(27));
    //@ close stack_allClients3(s, nil, 27);
    //@ close stack_unsep(stack_inv3_unsep)(boxed_int(27), s, stack_inv3(s, 27), stack_inv3_sep, nil);
    //@ produce_lemma_function_pointer_chunk(stack_inv3_sep);
    //@ produce_lemma_function_pointer_chunk(stack_inv3_unsep);    
    //@ share_stack(s);
        
    struct value* v = malloc(sizeof(struct value));
    if(v == 0) abort();
    v->val = 27;
    
    //@ close stack_push_context_pre(allClients3_push)(stack_inv3_unsep, s, v, boxed_int(27));
    //@ produce_lemma_function_pointer_chunk(allClients3_push);
    stack_push(s, v);
    //@ leak is_stack_push_context(allClients3_push);
    //@ open stack_push_context_post(allClients3_push)(boxed_int(27));
    
    //@ close stack_try_pop_context_pre(allClients3_try_pop)(stack_inv3_unsep, s, boxed_int(27));
    //@ produce_lemma_function_pointer_chunk(allClients3_try_pop);
    bool result = stack_try_pop(s, &v2);
    //@ leak is_stack_try_pop_context(allClients3_try_pop);
    //@ open stack_try_pop_context_post(allClients3_try_pop)(_, _, boxed_int(27));
    if(result) { 
        //@ open value(v2, 27);
        free(v2); 
    }

    //@ unshare_stack(s);
    //@ open stack_unsep(stack_inv3_unsep)(boxed_int(27), s, stack_inv3(s, 27), stack_inv3_sep, _);
    //@ leak is_stack_sep(stack_inv3_sep);
    //@ leak is_stack_unsep(stack_inv3_unsep);
    
    
    bool hasMore = true;
    while(hasMore)
    //@ invariant stack(s, ?remElems) &*& stack_allClients3(s, remElems, 27) &*& pointer(&v3, _) &*& (hasMore ? true: remElems == nil);
    {
        hasMore = stack_try_pop_sequential(s, &v3);
        if(hasMore) {
            //@ open stack_allClients3(s, remElems, 27);
            //@ open foreach(remElems, value_helper2(27));
            //@ close stack_allClients3(s, tail(remElems), 27);
            //@ open value_helper2(27)(v3);
            //@ open value(v3, 27);
            free((struct value*)v3); 
        }
    }
    
    //@ open stack_allClients3(s, remElems, 27);
    //@ open foreach(remElems, value_helper2(27));
    dispose_stack(s);
}
开发者ID:amintimany,项目名称:verifast,代码行数:58,代码来源:stack_leaking_client.c


示例6: test_pop_from_empty_stack_size_is_zero

static void test_pop_from_empty_stack_size_is_zero(void) {
  Stack *stack = create_stack();
  Node *node = NULL;
  pop(stack, &node);

  assert (0 == size(stack) && "stack size should be 0");
  free(node);
  destroy_stack(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:9,代码来源:test_stack.c


示例7: test_pop_from_non_empty_stack_returns_correct_value

static void test_pop_from_non_empty_stack_returns_correct_value(void) {
  Stack *stack = create_stack(3);
  push(stack, 8);
  BOOL success;
  int value = pop(stack, &success);

  assert (8 == value && "popped value should be 8");
  free(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:9,代码来源:test_stack.c


示例8: test_pop_from_stack_with_one_element_sets_head_to_negative

static void test_pop_from_stack_with_one_element_sets_head_to_negative(void) {
  Stack *stack = create_stack(3);
  push(stack, 8);
  BOOL success;
  pop(stack, &success);

  assert (0 > stack->head && "pop should set head to negative");
  free(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:9,代码来源:test_stack.c


示例9: test_pop_from_non_empty_stack_succeeds

static void test_pop_from_non_empty_stack_succeeds(void) {
  Stack *stack = create_stack(3);
  push(stack, 8);
  BOOL success;
  pop(stack, &success);

  assert (TRUE == success && "pop should succeed");
  free(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:9,代码来源:test_stack.c


示例10: push

void push(int val, Stack *s)
{
	Stack new_s = create_stack(val);	
	
	if(s != NULL)
		new_s->next = *s;
	
	*s = new_s;
}
开发者ID:Mehyo,项目名称:Bongo,代码行数:9,代码来源:stack.c


示例11: test_pop_from_empty_stack_node_is_null

static void test_pop_from_empty_stack_node_is_null(void) {
  Stack *stack = create_stack();
  Node *node = NULL;
  pop(stack, &node);

  assert (NULL == node && "popped node should be NULL");
  free(node);
  destroy_stack(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:9,代码来源:test_stack.c


示例12: LOG

void
rust_task::new_stack(size_t requested_sz) {
    LOG(this, mem, "creating new stack for task %" PRIxPTR, this);
    if (stk) {
        ::check_stack_canary(stk);
    }

    // The minimum stack size, in bytes, of a Rust stack, excluding red zone
    size_t min_sz = thread->min_stack_size;

    // Try to reuse an existing stack segment
    while (stk != NULL && stk->next != NULL) {
        size_t next_sz = user_stack_size(stk->next);
        if (min_sz <= next_sz && requested_sz <= next_sz) {
            LOG(this, mem, "reusing existing stack");
            stk = stk->next;
            return;
        } else {
            LOG(this, mem, "existing stack is not big enough");
            stk_seg *new_next = stk->next->next;
            free_stack(stk->next);
            stk->next = new_next;
            if (new_next) {
                new_next->prev = stk;
            }
        }
    }

    // The size of the current stack segment, excluding red zone
    size_t current_sz = 0;
    if (stk != NULL) {
        current_sz = user_stack_size(stk);
    }
    // The calculated size of the new stack, excluding red zone
    size_t rust_stk_sz = get_next_stack_size(min_sz,
                                             current_sz, requested_sz);

    if (total_stack_sz + rust_stk_sz > thread->env->max_stack_size) {
        LOG_ERR(this, task, "task %" PRIxPTR " ran out of stack", this);
        fail();
    }

    size_t sz = rust_stk_sz + RED_ZONE_SIZE;
    stk_seg *new_stk = create_stack(&local_region, sz);
    LOGPTR(thread, "new stk", (uintptr_t)new_stk);
    new_stk->task = this;
    new_stk->next = NULL;
    new_stk->prev = stk;
    if (stk) {
        stk->next = new_stk;
    }
    LOGPTR(thread, "stk end", new_stk->end);

    stk = new_stk;
    total_stack_sz += user_stack_size(new_stk);
}
开发者ID:Arreth,项目名称:rust,代码行数:56,代码来源:rust_task.cpp


示例13: test_push_onto_full_stack_fails

static void test_push_onto_full_stack_fails(void) {
  Stack *stack = create_stack(3);
  push(stack, 8);
  push(stack, 7);
  push(stack, 6);
  BOOL pushed = push(stack, 5);

  assert (FALSE == pushed && "push should fail");
  free(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:10,代码来源:test_stack.c


示例14: test_pop_from_stack_with_one_node_value_is_correct

static void test_pop_from_stack_with_one_node_value_is_correct(void) {
  Stack *stack = create_stack();
  push(stack, 5);
  Node *node = NULL;
  pop(stack, &node);

  assert (5 == node->value && "popped value should be 5");
  free(node);
  destroy_stack(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:10,代码来源:test_stack.c


示例15: test_pop_from_stack_with_one_node_size_is_correct

static void test_pop_from_stack_with_one_node_size_is_correct(void) {
  Stack *stack = create_stack();
  push(stack, 5);
  Node *node = NULL;
  pop(stack, &node);

  assert (0 == size(stack) && "stack size after pop should be 0");
  free(node);
  destroy_stack(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:10,代码来源:test_stack.c


示例16: test_stack_peek_after_pop

static void test_stack_peek_after_pop(void) {
  Stack *stack = create_stack();
  push(stack, 4);
  push(stack, 5);
  Node *node;
  pop(stack, &node);

  assert (4 == peek(stack) && "peek at stack should show 4");
  free(node);
  destroy_stack(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:11,代码来源:test_stack.c


示例17: test_pop_from_non_empty_stack_value_is_correct

static void test_pop_from_non_empty_stack_value_is_correct(void) {
  Stack *stack = create_stack();
  push(stack, 5);
  push(stack, 4);
  Node *node = NULL;
  pop(stack, &node);

  assert (4 == node->value && "popped value should be 4");
  free(node);
  destroy_stack(stack);
}
开发者ID:heptat,项目名称:unix,代码行数:11,代码来源:test_stack.c


示例18: assert_each

void assert_each() {
  int data[] = {456, 370, 316};
  Stack *stack = create_stack();
  stack_push(stack, 316);
  stack_push(stack, 370);
  stack_push(stack, 456);

  int test(Element e, int i) {
    assert(e == data[i]);
    return 0;
  }
开发者ID:CodeR57,项目名称:8puzzle-1,代码行数:11,代码来源:assert_stack.c


示例19: create_stack

t_stack	*push(t_stack *top, char *c)
{
	t_stack	*elem;

	elem = NULL;
	elem = create_stack(c);
	if (elem && top)
	{
		elem->next = top;
	}
	return (elem);
}
开发者ID:chinspp,项目名称:42,代码行数:12,代码来源:stack.c


示例20: main

int main()
    //@ requires true;
    //@ ensures true;
{
    struct stack *s = create_stack();
    stack_push(s, 10);
    stack_push(s, 20);
    stack_pop(s);
    stack_pop(s);
    stack_dispose(s);
    return 0;
}
开发者ID:amintimany,项目名称:verifast,代码行数:12,代码来源:sum.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ create_string函数代码示例发布时间:2022-05-30
下一篇:
C++ create_socket函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap