织梦CMS - 轻松建站从此开始!

罗索

ACE容器---数组

jackyhwei 发布于 2010-01-28 12:47 点击:次 
ACE提供了一种安全的包装类型ACE_Array,能够在访问数组时进行检查,而且还提供了一些有用的特性,比如:复制和比较的语意;
TAG:

ACE提供了一种安全的包装类型ACE_Array<T>,能够在访问数组时进行检查,而且还提供了一些有用的特性,比如:复制和比较的语意;

例子代码:

int TestContainers::testACEArray(void)
{
 ACE_DEBUG( (LM_INFO, ACE_TEXT("----------> use ACE_Array <----------\n")) );
 int i = 0;
 DataElement* elem = NULL;
 DataElement** elem2 = NULL;
 ACE_Array<DataElement*> arr(10);
 for(i = 0; i < 10; i++)
 {
  elem = NULL;
  ACE_NEW_RETURN(elem, DataElement(i), -1);
  arr[i] = elem;
 }

 //Check the access
 ACE_ASSERT(arr.set(elem, 11));
 ACE_ASSERT(arr.get(elem, 11));

 //Make a copy
 ACE_Array<DataElement*> copy_arr = arr;
 ACE_ASSERT(copy_arr == arr);

 ACE_DEBUG( (LM_INFO, ACE_TEXT("----> outout with by array index ...\n")) );
 for(i = 0; i < 10; i++)
 {
  ACE_DEBUG( (LM_INFO, ACE_TEXT(" %d"), arr[i]->getData()) );
 }
 ACE_DEBUG( (LM_INFO, ACE_TEXT("\n")) );

 ACE_DEBUG( (LM_INFO, ACE_TEXT("----> outout with ITERATOR ...\n")) );
 ACE_Array<DataElement*>::ITERATOR it(copy_arr);
 while(!(it.done()))
 {
  elem2 = NULL;
  elem = NULL;
  it.next(elem2);
  elem = *elem2;
  if(elem)
  {
   ACE_DEBUG( (LM_INFO, ACE_TEXT("  %d\n"),elem->getData()) );
   delete elem;
  }
  it.advance();
 }
 return 0;
}
 

(jacky)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201001/8410.html]
本文出处:网络博客 作者:jacky
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容