ACE篇之八:ACE容器之四(数组)
来源:互联网 发布:nginx的配置文件 编辑:程序博客网 时间:2024/05/16 12:23
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;
}
};
- ACE篇之八:ACE容器之四(数组)
- ACE篇之八:ACE容器之四(数组)
- ACE篇之九:ACE容器之四(集合)
- ACE篇之六:ACE容器之二(栈)
- ACE篇之七:ACE容器之三(队列)
- ACE篇之六:ACE容器之二(栈)
- ACE篇之七:ACE容器之三(队列)
- ACE篇之九:ACE容器之五(集合)
- ACE篇之十:ACE容器之五(映射表管理器)
- ACE篇之十一:ACE容器之六(自调整的二叉树)
- ACE篇之十:ACE容器之六(映射表管理器)
- ACE篇之十一:ACE容器之七(自调整的二叉树)
- ACE篇之五:ACE容器之一(双向链表)
- ACE篇之五:ACE容器之一(双向链表)
- ACE 容器之四 ACE_Bounded_Stack ,ACE_Fixed_Stack,ACE_Unbounded_Stack的使用
- ACE之基础篇
- ACE 容器之二 ACE_DLList 的使用
- ACE 容器之三 ACE_Unbounded_Queue的使用
- 在MyEclipse6.0中安装FLEX插件的过程
- 批量更新数据库所有表中字段的内容,中木马后的急救处理
- java面试题一
- ACE篇之七:ACE容器之三(队列)
- ASP 中 Split 函数的实例
- ACE篇之八:ACE容器之四(数组)
- qt中文翻译步骤
- 修改Eclipse/MyEclipse项目的默认编码
- ACE篇之九:ACE容器之四(集合)
- ACE篇之十:ACE容器之五(映射表管理器)
- x264源代码分析
- Myeclipse7.5下载及安装+破解+升级(转载)
- ACE篇之十一:ACE容器之六(自调整的二叉树)
- 基本的TCP/IP Socket用法(一)