演示了ACE双向链表与STD链表的用法 // EchoServer.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "ace/Containers.h" #include "ace/Log_Msg.h" #include <list> using namespace std; int ACE_TMAIN(int argc, ACE_TCHAR* argv[]) { //创建一个双向列表 ACE_DLList<int> intList; for (int i = 0; i < 10;i++) { int* p; ACE_NEW_RETURN(p,int(i),-1); ACE_DEBUG((LM_DEBUG,ACE_TEXT("%x/n"),p)); intList.insert_head(p); } ACE_DEBUG((LM_DEBUG,ACE_TEXT("/n"))); //创建一个迭代器 ACE_DLList_Iterator<int>intIter(intList); while (!intIter.done()) { ACE_DEBUG((LM_DEBUG,ACE_TEXT("%x/n"),*(intIter.next()))); intIter++; } //创建一个反向迭代器 ACE_DLList_Reverse_Iterator<int>intRevIter(intList); while (!intRevIter.done()) { ACE_DEBUG((LM_DEBUG,ACE_TEXT("%x/n"),*(intRevIter.next()))); intRevIter++; } //输出当前列表中元素的个数 ACE_DEBUG((LM_DEBUG,ACE_TEXT("size = %d/n"),intList.size())); intList.reset(); ACE_DEBUG((LM_DEBUG,ACE_TEXT("size = %d/n"),intList.size())); list<int> std_int_list; for (int i = 0; i < 10;i++) { std_int_list.push_back(i); } //正向迭代器 list<int>::iterator it = std_int_list.begin(); for (;it != std_int_list.end();it++) { ACE_DEBUG((LM_DEBUG,ACE_TEXT("%d/n"),*it)); } //使用反向迭代器 list<int>::reverse_iterator rit = std_int_list.rbegin(); for(;rit != std_int_list.rend();rit++) { ACE_DEBUG((LM_DEBUG,ACE_TEXT("%d/n"),*rit)); } //输出当前列表中的元素个数 ACE_DEBUG((LM_DEBUG,ACE_TEXT("size = %d/n"),std_int_list.size())); //清除所有元素 std_int_list.clear(); ACE_DEBUG((LM_DEBUG,ACE_TEXT("size = %d/n"),std_int_list.size())); return 0; }