ACE 容器之四 ACE_Bounded_Stack ,ACE_Fixed_Stack,ACE_Unbounded_Stack的使用
来源:互联网 发布:whois域名查询 编辑:程序博客网 时间:2024/06/06 03:27
ACE提供几个栈容器的使用。有边界限定的,有边界不限定,选择一个合适的自己用用。
// ACEstack.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "ace/OS_Memory.h"#include "ace/Log_Msg.h"#include "ace/Containers.h"//固定大小的栈,直接存储元素int runBoundedStack (void){ACE_TRACE ("StackExample::runBoundedStack");ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using a bounded stack\n")));//构造一个100个元素的数据栈ACE_Bounded_Stack<int> bstack1(100);//数组赋值,并且将数组中的元素入栈int elem[10];for (int i = 0; i < 10; i++){elem[i] = i;bstack1.push (elem[i]);}//把一个数据栈完全赋值给另外一个栈。也就是栈的整体拷贝//同时验证出栈操作ACE_Bounded_Stack<int> bstack2(10);bstack2 = bstack1;for (int j = 0; j < 10; j++){int elem;bstack2.pop (elem);ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d "), elem));}printf("\n-------------------------------------\n");return 0;}//固定大小的栈,并且内部元素为指针int runFixedStack(void){ACE_TRACE ("StackExample::runFixedStack");ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using a fixed stack\n")));ACE_Fixed_Stack<int*, 10> fstack;for (int k = 0; k < 10; k++){// Push the element on the stack.int * elem = new int;*elem = k;fstack.push (elem); }for (int l = 0; l < 10; l++){int* elem = 0;fstack.pop (elem);ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d "), *elem));delete elem;}printf("\n-------------------------------------\n");return 0;}//没有边界限制的栈,也就是说数组元素的个数没有任何限制int runUnboundedStack (void){ACE_TRACE ("StackExample::runUnboundedStack");ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using an unbounded stack\n")));ACE_Unbounded_Stack<int*> ustack;ACE_Bounded_Stack<int*> privateStack_(100);for (int m = 0; m < 10; m++){int *elem = new int;*elem = m;// Push the element on both stacks.ustack.push (elem);privateStack_.push(elem);}// Oddly enough, you can actually iterate through an// unbounded stack! This is because underneath the covers// the unbounded stack is a linked list.// This will cause the elements in the private stack to// also disappear!ACE_Unbounded_Stack_Iterator<int*> iter(ustack);for (iter.first (); !iter.done (); iter.advance ()){int ** elem = 0;iter.next (elem);ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d "),**elem));delete (*elem);}printf("\n");return 0;}int _tmain(int argc, _TCHAR* argv[]){runBoundedStack();runFixedStack();runUnboundedStack();getchar();return 0;}
- ACE 容器之四 ACE_Bounded_Stack ,ACE_Fixed_Stack,ACE_Unbounded_Stack的使用
- ACE 容器之二 ACE_DLList 的使用
- ACE 容器之三 ACE_Unbounded_Queue的使用
- ACE篇之八:ACE容器之四(数组)
- ACE篇之九:ACE容器之四(集合)
- ACE篇之八:ACE容器之四(数组)
- ACE 容器之五 ACE_Bounded_Set 和 ACE_Unbounded_Set 的使用
- 尽量使用STL而不是ACE的容器
- ACE 容器之一 ACE_Array 的使用
- ACE篇之十一:ACE容器之六(自调整的二叉树)
- ACE篇之十一:ACE容器之七(自调整的二叉树)
- ACE篇之六:ACE容器之二(栈)
- ACE篇之七:ACE容器之三(队列)
- ACE篇之六:ACE容器之二(栈)
- ACE篇之七:ACE容器之三(队列)
- ACE篇之九:ACE容器之五(集合)
- Ioc容器-Autofac 之四-依赖注入框架Autofac的简单使用
- ACE篇之二:使用ACE日志设施(完整的代码)
- Java的相对路径与绝对路径
- JVM系列三:JVM参数设置、分析
- POJ 1038 - Bugs Integrated, Inc. 三进制状态DP
- 如何制作Jar包并在android中调用jar包
- [保留] awk用法小结(作者总结)
- ACE 容器之四 ACE_Bounded_Stack ,ACE_Fixed_Stack,ACE_Unbounded_Stack的使用
- hdu 1048
- View在屏幕上显示出来要先经过measure(计算)和layout(布局)android
- 如何将自定义标签打成jar包
- 共享内存
- 使用asp.net进行多关键字查询的例子
- Unity 网络视频教程第一讲
- 网站服务管理系统wdcp系列教程之六
- [各种面试题]来自陈利人先生微博面试题---出现超过N/3次的查询