下边的代码演示了如何使用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; }