博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACE篇之八:ACE容器之四(数组)
阅读量:4169 次
发布时间:2019-05-26

本文共 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/

你可能感兴趣的文章
2019.1.12
查看>>
Java语言程序设计与数据结构》编程练习答案(第二十章)(二)
查看>>
2019.2.25
查看>>
2019.2.26
查看>>
2019.2.27
查看>>
2019.2.28
查看>>
2019.2.29
查看>>
聊聊我当年在培训学校做开发的经历
查看>>
用Docker搭建Redis主从复制的集群
查看>>
盘点这些年我出的书,以及由此得到的收获
查看>>
用Python的Pandas和Matplotlib绘制股票KDJ指标线
查看>>
面试必问:对java多线程里Synchronized的思考
查看>>
最近接了本分布式组件面试书的选题,请大家一起来提意见
查看>>
Redis整合MySQL和MyCAT分库组件(来源是我的新书)
查看>>
Java程序员普遍存在的面试问题以及应对之道(新书第一章节摘录)
查看>>
程序员高效出书避坑和实践指南
查看>>
计算机方面毕业生怎样写简历
查看>>
从软件公司的异同点讲起,聊聊未来的程序员该如何选公司和谋规划
查看>>
我不想安于当前的限度,以达到所谓的幸福,回顾下2020年的我
查看>>
如何在面试中介绍自己的项目经验(面向java改进版)
查看>>