ACE 容器之二 ACE_DLList 的使用

下邊的代碼演示瞭如何使用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;
}


 

發佈了78 篇原創文章 · 獲贊 8 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章