mFrame
載入中...
搜尋中...
無符合項目
ufm::util::Set< E > 結構 樣版 參考文件abstract

集合介面,定義不允許重複元素的容器。 更多...

#include <Set.h>

類別ufm::util::Set< E >的繼承圖:
ufm::util::Collection< void * > ufm::lang::Iterable< void * > ufm::util::Container ufm::util::PArraySet

公開方法(Public Methods)

virtual bool add (E *v) override
 將指定元素添加到此集合中(可選操作)。
 
virtual bool remove (E *v) override
 從此集合中刪除指定元素(可選操作)。
 
virtual bool replace (E *oldValue, E *newValue) override
 替換此集合中的指定元素。
 
virtual bool contains (E *v) const override
 檢查此集合是否包含指定元素。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Iterable< void * >
virtual void forEach (ufm::func::Consumer< void *& > &action) override
 遍歷集合中所有元素,對每個元素執行指定操作。 若所有元素處理完畢或操作中發生異常則停止。
 
virtual void ** elementAt (int index) const override
 獲取集合中指定索引處的元素。
 
virtual int nextIndex (int index) const override
 返回當前索引的下一個有效索引。
 
virtual ufm::util::Iterator< void * > begin (void) override
 返回一個迭代器,用於遍歷集合中的元素
 
virtual ufm::util::Iterator< void * > end (void) override
 返回一個迭代器,用於遍歷集合的結尾
 
- 公開方法(Public Methods) 繼承自 ufm::util::Container
virtual void clear (void) override
 從此集合中刪除所有元素(可選操作)
 
virtual bool isEmpty (void) const override
 檢查此集合是否不包含任何元素
 
virtual int size (void) const override
 返回此集合中的元素數量
 

詳細描述

template<typename E = void>
struct ufm::util::Set< E >

集合介面,定義不允許重複元素的容器。

樣版參數
E此集合中保存的元素類型,預設為 void

Set 介面表示一組唯一的元素,不允許重複的元素存在。 提供了元素的添加、刪除、替換和查詢功能。

使用範例:
template<typename E>
class SimpleSet : public ufm::util::Set<E> {
std::set<E*> elements;
public:
bool add(E* v) override {
auto result = elements.insert(v);
return result.second; // true 如果插入成功
}
bool remove(E* v) override {
return elements.erase(v) > 0;
}
bool replace(E* oldValue, E* newValue) override {
if (contains(oldValue)) {
elements.erase(oldValue);
elements.insert(newValue);
return true;
}
return false;
}
bool contains(E* v) const override {
return elements.find(v) != elements.end();
}
bool isEmpty(void) const override {
return elements.empty();
}
int size(void) const override {
return static_cast<int>(elements.size());
}
void clear(void) override {
elements.clear();
}
};
virtual ufm::util::Iterator< E > end(void) override
返回一個迭代器,用於遍歷集合的結尾
集合介面,定義不允許重複元素的容器。
Definition Set.h:88
參閱
ufm::util::Collection
1.0.0

函式成員說明文件

◆ add()

template<typename E = void>
virtual bool ufm::util::Set< E >::add ( E * v)
pure virtual

將指定元素添加到此集合中(可選操作)。

如果此集合已包含該元素,則返回false。

參數
v要添加的元素
傳回值
true 如果此集合未包含指定元素,則返回true
false 如果此集合已包含指定元素,則返回false

◆ contains()

template<typename E = void>
virtual bool ufm::util::Set< E >::contains ( E * v) const
pure virtual

檢查此集合是否包含指定元素。

參數
v要檢查的元素
傳回值
true 如果此集合包含指定元素,則返回true
false 如果此集合不包含指定元素,則返回false

◆ remove()

template<typename E = void>
virtual bool ufm::util::Set< E >::remove ( E * v)
pure virtual

從此集合中刪除指定元素(可選操作)。

如果此集合包含該元素,則返回true。

參數
v要刪除的元素
傳回值
true 如果此集合包含指定元素,則返回true
false 如果此集合不包含指定元素,則返回false

◆ replace()

template<typename E = void>
virtual bool ufm::util::Set< E >::replace ( E * oldValue,
E * newValue )
pure virtual

替換此集合中的指定元素。

如果此集合包含指定的舊元素,則將其替換為新元素。 如果舊元素不存在,則返回false。

參數
oldValue要替換的舊元素
newValue新元素
傳回值
true 如果替換成功,則返回true
false 如果舊元素不存在,則返回false

此結構(structure) 文件是由下列檔案中產生: