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的容器包含兩類 序列容器和關聯容器。序列容器是一種其元素按照線...