本文共 1181 字,大约阅读时间需要 3 分钟。
http://hi.baidu.com/qingshanyin/blog/item/7f6386274670cf05908f9d7c.html
1、前言
ACE提供的数组类型是ACE_Array,是一模板类,构造方法如下:
ACE_Array<DataElement*> arr(10);
使用方法:
(1)arr[i]=....
(2)利用专门针对ACE_Array的迭代器ACE_Array<DataElement*>::ITERATOR iter(arr)来实现数组数据访问。
ACE提供的数组不是序列,但是一种安全包装的类型。
2、测试数组代码
#include "ace/Containers.h"
#include "DataElement.h" //数组测试 //ACE提供的数据类型是ACE_Array,是一模板类型 class Array_Practice { public: int static runArray(void) { //数组定义,注意数组元素是指针,这意味着数组元素在堆上创建,函数结束前要手工释放内存 ACE_TRACE(ACE_TEXT("Array_Practice::runArray")); ACE_DEBUG((LM_DEBUG,ACE_TEXT("Using an Array/n"))); ACE_Array<DataElement*> arr(10); DataElement* elem=0; for(int i=0;i<10;i++) { ACE_NEW_RETURN(elem,DataElement(i),-1); arr[i]=elem; }//数组边界检查
ACE_ASSERT(arr.set(elem,11)==-1); ACE_ASSERT(arr.get(elem,11)==-1);//数组拷贝
ACE_Array<DataElement*> copy=arr; //断言:两个数组应该相等 ACE_ASSERT(copy==arr);//利用迭代器来访问数组
//ACE_ARRAY<DataElement*>::ITERATOR是用来迭代ACE_ARRAY对象的类型 ACE_Array<DataElement*>::ITERATOR iter(arr); while(!iter.done()) { DataElement** data; iter.next(data); ACE_DEBUG((LM_DEBUG,ACE_TEXT("%d "),(*data)->getData())); delete (*data);//释放内存 iter.advance(); } ACE_DEBUG((LM_DEBUG,ACE_TEXT("/n"))); return 0; } };转载地址:http://avgxi.baihongyu.com/