ACE篇之九 ACE容器之五(集合)

2021-09-30 08:50:46 字數 1199 閱讀 2223

1、前言

集合是不允許其所含條目重複的序列。ace有兩種集合:有界集合和無界集合,即ace_bounded_set和ace_unbounded_set。它們支援插入、查詢、迭代。

2、測試完整源**如下(原書本有多處錯誤)

#include "ace/containers.h"

#include "dataelement.h"

//集合測試

//集合是不允許其所含條目重複的序列

//ace有兩種集合:有界集合和無界集合

class set_practice

}//元素個數

ace_debug((lm_debug,ace_text("the sum of active objects is %d/n"),dataelement::numofactiveobjects()));

dataelement elem1(10),elem2(49);

//查詢元素

if(!bset.find(elem1)&&!bset.find(elem2))

for(int j=0;j<100;j++)

ace_debug((lm_debug,ace_text("/n")));

//元素移除後,再執行查詢

if((bset.find(elem[0])==-1)&&(bset.find(elem[49])==-1))

return 0;

}//測試無界集合,元素在堆上建立

//通過迭代器來進行集合元素訪問

int static rununboudedset(void)

dataelement debegin(0),deend(99);

//查詢元素

//從下面查詢的引數看,很顯然,元素是指標

if(!uset.find(&debegin)&&!uset.find(&deend))

ace_debug((lm_debug,ace_text("deleting the elements/n")));

//迭代器宣告

ace_unbounded_set_iteratoriter(uset);

//刪除元素後,集合中的指標將是無效的

for(iter=uset.begin();iter!=uset.end();iter.advance())

ace_debug((lm_info,ace_text("/n")));

return 0;}};

ACE篇之九 ACE容器之四(集合)

1 前言 集合是不允許其所含條目重複的序列。ace有兩種集合 有界集合和無界集合,即ace bounded set和ace unbounded set。它們支援插入 查詢 迭代。2 測試完整源 如下 原書本有多處錯誤 include ace containers.h include dataelem...

ACE篇之六 ACE容器之二(棧)

1 前言 棧是lifo序列 後進先出 ace既支援動態棧,也支援靜態棧,靜態棧的尺寸固定,使用代價較低。ace提供了兩種靜態棧 有界棧ace bounded stack和固定棧ace fixed stack。動態棧在每次插入時候分配記憶體,每次彈出時候釋放該記憶體,即無界棧ace unbounded...

ACE篇之五 ACE容器之一(雙向鍊錶)

前沿 為了跨平台的需要,以及效能考慮,ace建立了自己的容器。ace支援兩種容器 基於模板的 型別安全的容器,以及基於物件的容器。基於模板的容器 允許在編譯時建立 針對特定型別的容器 基於物件的容器 支援某一類物件型別的插入和刪除。ace的容器包含兩類 序列容器和關聯容器。序列容器是一種其元素按照線...