ACE 容器之五 ACE_Bounded_Set 和 ACE_Unbounded_Set 的使用
来源:互联网 发布:服装店进销存软件 编辑:程序博客网 时间:2024/05/21 10:37
这两个类是ACE提供的集合容器类。集合容器类也分为有边界和无边界之分。
// ACEset.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 runBoundedSet(){ACE_TRACE ("SetExample::runBoundedSet");ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using a bounded set\n")));ACE_Bounded_Set<int> bset(10);//插入连词,验证集合的性质,同一个集合中插入两个相同的元素会失败int elem[10];for (int i = 0; i < 10; i++){elem[i] = i;//Inserting two copies of the same element isn't allowed.bset.insert (elem[i]);if (bset.insert(elem[i]) == 1){ACE_DEBUG ((LM_INFO, ACE_TEXT("insert elements %d existed in set\n"), elem[i]));}}//查找元素 5 和 8int elem1 = 5;int elem2 = 8;if (!bset.find (elem1) && !bset.find (elem2)){ACE_DEBUG ((LM_INFO, ACE_TEXT ("The elements %d and %d are ") ACE_TEXT ("in the set!\n"), elem1, elem2));}//删除前边5个原色for (int j = 0; j < 5; j++){bset.remove (elem[j]); // Remove the element from the set.ACE_DEBUG((LM_DEBUG, ACE_TEXT ("%d "), elem[j]));}printf("\n---------------------------\n");//然后再查找 0 和 49if ((bset.find (elem[0]) == -1) && (bset.find (elem[4]) == -1)){ACE_DEBUG ((LM_INFO, ACE_TEXT ("The elements %d and %d are ") ACE_TEXT ("NOT in the set!\n"), elem[0], elem[4]));}return 0;}//没有限制集合大小类型的集合,并且元素是指针int runUnboundedSet (){ACE_TRACE ("SetExample::runUnboundedSet");ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using an unbounded set.\n")));int *a = NULL;int *b = NULL;ACE_Unbounded_Set<int*> uset;for (int m = 0; m < 10; m++){int *elem = new int;//特殊记录一下指针的值,为了查找。if (m == 0){a = elem;}else if(m==9){b = elem;}*elem = m;uset.insert (elem);}//查找的时候一定注意这块,内存匹配查找,否则要自己实现查找函数//验证元素是否在集合if (!uset.find(a) && !uset.find(b)){ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Found the elements\n")));}// Iterate and destroy the elements in the set.ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Deleting the elements\n")));//遍历ACE_Unbounded_Set_Iterator<int*> iter (uset);for (iter = uset.begin (); iter != uset.end (); iter++){int* elem = (*iter);printf("%d ", *elem);delete elem;}printf("\n-------------------------------------\n");return 0;}int _tmain(int argc, _TCHAR* argv[]){runBoundedSet();runUnboundedSet();getchar();return 0;}
- ACE 容器之五 ACE_Bounded_Set 和 ACE_Unbounded_Set 的使用
- ACE 容器之二 ACE_DLList 的使用
- ACE 容器之三 ACE_Unbounded_Queue的使用
- ACE篇之九:ACE容器之五(集合)
- ACE 容器之四 ACE_Bounded_Stack ,ACE_Fixed_Stack,ACE_Unbounded_Stack的使用
- ACE篇之十:ACE容器之五(映射表管理器)
- 尽量使用STL而不是ACE的容器
- ACE 容器之一 ACE_Array 的使用
- ACE篇之五:ACE容器之一(双向链表)
- ACE篇之五:ACE容器之一(双向链表)
- ACE的安装和使用
- ACE篇之十一:ACE容器之六(自调整的二叉树)
- ACE篇之十一:ACE容器之七(自调整的二叉树)
- ACE篇之六:ACE容器之二(栈)
- ACE篇之七:ACE容器之三(队列)
- ACE篇之八:ACE容器之四(数组)
- ACE篇之九:ACE容器之四(集合)
- ACE篇之六:ACE容器之二(栈)
- ListView实现论坛管理效果(附源碼)
- 动态壁纸 (Wallpaper) 介绍
- Android 手机百科全书: 新手入门
- ScrollView反弹效果的实现
- Android Gallery控件使用方法详解
- ACE 容器之五 ACE_Bounded_Set 和 ACE_Unbounded_Set 的使用
- andriod一个不错的启动菜单显示屏动画效果
- Android之快捷方式
- 音乐在线播放Demo
- hdu 1015 DFS
- Android 实现歌词同步
- http 上传文件的方法
- Android开发WeatherForecast程序
- 安卓弹性刷新通用版—支持任何view上下刷新均有弹性效果