现在的位置: 首页 > 综合 > 正文

ACE 容器之二 ACE_DLList 的使用

2019年01月10日 ⁄ 综合 ⁄ 共 917字 ⁄ 字号 评论关闭

下边的代码演示了如何使用ACE容器 ACE_DLLList 的使用方法,从名字上看,就可以知道这是一个动态的List,所以在使用的过程中和 STL 提供的 list 还是有很大的不同的。

 

// ACElist.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"


//这种使用方式十分难以理解,和 stl 的 list 比较起来,使用
//方法有很大的偏差。一定要存储指针。
typedef ACE_DLList<int> MyList;


int _tmain(int argc, _TCHAR* argv[])
{

	MyList list;

	//数据进入链表
	for(int i=0; i<10; i++)
	{	
		int *pint = new int;
		*pint = i * 10;
		list.insert_tail(pint);
	}

	//迭代器前向访问
	ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Forward iteration\n")));
	ACE_DLList_Iterator<int> iter (list);
	while (!iter.done ())
	{
		printf("%d\n", *(iter.next()));
		iter++;
	}

	//迭代器后向访问
	ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Reverse Iteration\n")));
	ACE_DLList_Reverse_Iterator<int> riter (list);
	while (!riter.done ())
    {
		printf("%d\n", *(riter.next()));
		riter++;
    }


	//删除空间
	ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("delete \n")));
	for(int i=0; i<10; i++)
	{
		int *pint = list.delete_head();
		printf("%d\n", *pint);
		delete pint;
	}

	getchar();

	return 0;
}

 

抱歉!评论已关闭.