mFrame
載入中...
搜尋中...
無符合項目
ufm::util::ArrayQueue 類別 參考文件

指標陣列佇列類別 更多...

#include <ArrayQueue.h>

類別ufm::util::ArrayQueue的繼承圖:
ufm::lang::Object ufm::util::Queue< void * > ufm::lang::Interface ufm::util::Collection< void * > ufm::lang::Iterable< void * > ufm::util::Container

公開方法(Public Methods)

 ArrayQueue (ufm::util::PArray pArray) noexcept
 從記憶體區域建構新的指標陣列佇列
 
 ArrayQueue (int queueSize, int elementSize)
 從指定的記憶體和元素大小建構新的指標陣列佇列
 
 ArrayQueue (ufm::lang::Memory memory, int elementSize) noexcept
 從記憶體區域建構新的指標陣列佇列
 
 ArrayQueue (ufm::util::ArrayQueue &other)=delete
 複製構造函數
 
 ArrayQueue (ArrayQueue &&other) noexcept=default
 移動構造函數
 
virtual ~ArrayQueue (void) override
 解構指標陣列佇列物件
 
template<typename E >
 operator const Queue< E > & (void) const
 類型轉換運算子,將 ArrayQueue 轉換為 ArrayQueue<E>&
 
template<typename E >
 operator Queue< E > & (void)
 類型轉換運算子,將 ArrayQueue 轉換為 ArrayQueue<E>&
 
virtual bool offer (void *const &e) override
 如果在不違反容量限制的情況下立即執行,則將指定的元素插入到此隊列中。 當使用容量限制隊列時,此方法通常優於 add(E) ,這可能無法僅通過拋出異常來插入元素。
 
virtual void *& poll (void) override
 檢索並刪除此隊列的頭,如果此隊列為空,則返回null。
 
virtual void *& peek (void) override
 檢索但不刪除此隊列的頭部,如果此隊列為空,則返回 null 。
 
virtual void clear (void) override
 從此集合中刪除所有元素(可選操作)。此方法返回後,集合將為空。
 
virtual bool isEmpty (void) const override
 如果此集合不包含元素,則返回true。
 
virtual int size (void) const override
 返回此集合中的元素數。
 
virtual void forEach (ufm::func::Consumer< void *& > &accetp) 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
 取得 Scanner 結尾迭代器。
 
virtual bool isFull (void) const override
 檢查佇列是否已滿
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Object
void * operator new (size_t n)
 使用運算子 new 分配記憶體
 
void * operator new (size_t n, void *p)
 在指定記憶體上調用運算子 new
 
virtual ufm::lang::ObjectgetObject (void) override
 取得對應的 Object 物件
 
void delay (int milliseconds) const
 延遲指定的毫秒數進行執行緒等待
 
bool equals (Object *object) const
 判斷與另一物件是否為相同參照(指標型態比較)
 
bool equals (Object &object) const
 判斷與另一物件是否為相同參照(參照型態比較)
 
void wait (void) const
 使當前線程等待直到被通知
 
bool wait (int timeout) const
 等待通知或超時
 
bool yield (void) const
 讓執行緒讓渡控制權給同優先權的下一個執行緒
 
int lock (void) const
 核心鎖定,鎖定期間禁止線程切換
 
int unlock (void) const
 核心解鎖
 
ufm::sys::ThreadcurrentThread (void) const
 取得當前執行緒指標
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Interface
virtual ~Interface (void)=default
 虛擬析構函式
 

額外的繼承成員

- 靜態公開方法(Static Public Methods) 繼承自 ufm::util::Queue< void * >
static Queue< void * > * type (void)
 獲取 Queue 類型
 

詳細描述

指標陣列佇列類別

ArrayQueue 類別實現了一個指標型別的 FIFO (先進先出) 佇列結構。 為 ArrayQueue<void*> 的具體實現,能有效管理指標型別的循環佇列。 實現了標準的佇列操作功能,如添加、移除和查詢等操作。

建構子與解構子說明文件

◆ ArrayQueue() [1/5]

ufm::util::ArrayQueue::ArrayQueue ( ufm::util::PArray pArray)
noexcept

從記憶體區域建構新的指標陣列佇列

參數
memory用於存儲佇列元素的記憶體區域
elementSize佇列長度,可存儲的元素數量

◆ ArrayQueue() [2/5]

ufm::util::ArrayQueue::ArrayQueue ( int queueSize,
int elementSize )
inline

從指定的記憶體和元素大小建構新的指標陣列佇列

參數
memory用於存儲佇列元素的記憶體區域
elementSize每個元素的大小(位元組)

◆ ArrayQueue() [3/5]

ufm::util::ArrayQueue::ArrayQueue ( ufm::lang::Memory memory,
int elementSize )
inlinenoexcept

從記憶體區域建構新的指標陣列佇列

參數
memory用於存儲佇列元素的記憶體區域
elementSize每個元素的大小(位元組)

◆ ArrayQueue() [4/5]

ufm::util::ArrayQueue::ArrayQueue ( ufm::util::ArrayQueue & other)
delete

複製構造函數

從另一個 ArrayQueue 物件複製資源,並初始化新的佇列。

參數
other要複製的 ArrayQueue 物件

◆ ArrayQueue() [5/5]

ufm::util::ArrayQueue::ArrayQueue ( ArrayQueue && other)
defaultnoexcept

移動構造函數

從另一個 ArrayQueue 物件移動資源,釋放原有內存並接管其資源。

參數
other要移動的 ArrayQueue 物件

◆ ~ArrayQueue()

virtual ufm::util::ArrayQueue::~ArrayQueue ( void )
overridevirtual

解構指標陣列佇列物件

釋放佇列使用的資源和記憶體

函式成員說明文件

◆ begin()

virtual ufm::util::Iterator< void * > ufm::util::ArrayQueue::begin ( void )
overridevirtual

取得目前插入位置。

此方法回傳下次插入資料的索引位置。

傳回值
int 目前插入位置

實作 ufm::lang::Iterable< void * >.

◆ clear()

virtual void ufm::util::ArrayQueue::clear ( void )
overridevirtual

從此集合中刪除所有元素(可選操作)。此方法返回後,集合將為空。

實作 ufm::util::Container.

◆ elementAt()

virtual void ** ufm::util::ArrayQueue::elementAt ( int index) const
overridevirtual

獲取集合中指定索引處的元素。

參數
index要獲取的元素索引
傳回值
E* 指向集合中指定索引處元素的指針

實作 ufm::lang::Iterable< void * >.

◆ end()

virtual ufm::util::Iterator< void * > ufm::util::ArrayQueue::end ( void )
overridevirtual

取得 Scanner 結尾迭代器。

此方法回傳一個代表 Scanner 緩衝區結尾的迭代器, 可用於遍歷至資料結束。

傳回值
Scanner::Iterator 指向結尾的迭代器

實作 ufm::lang::Iterable< void * >.

◆ forEach()

virtual void ufm::util::ArrayQueue::forEach ( ufm::func::Consumer< void *& > & accetp)
overridevirtual

遍歷集合中所有元素,對每個元素執行指定操作。 若所有元素處理完畢或操作中發生異常則停止。

當操作導致底層資料源發生變動時(未同步處理),其行為未定義。

參數
action對每個元素執行的操作

實作 ufm::lang::Iterable< void * >.

◆ isEmpty()

virtual bool ufm::util::ArrayQueue::isEmpty ( void ) const
overridevirtual

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

傳回值
true如果此集合不包含元素

實作 ufm::util::Container.

◆ isFull()

virtual bool ufm::util::ArrayQueue::isFull ( void ) const
overridevirtual

檢查佇列是否已滿

傳回值
true 如果佇列已滿
false 如果佇列未滿

實作 ufm::util::Queue< void * >.

◆ nextIndex()

virtual int ufm::util::ArrayQueue::nextIndex ( int index) const
overridevirtual

返回當前索引的下一個有效索引。

參數
index當前索引
傳回值
int 下一個有效索引

如果當前索引已經是最後一個元素,則返回 -1。 如果當前索引無效(如 -1),則返回 0

實作 ufm::lang::Iterable< void * >.

◆ offer()

virtual bool ufm::util::ArrayQueue::offer ( void *const & element)
overridevirtual

如果在不違反容量限制的情況下立即執行,則將指定的元素插入到此隊列中。 當使用容量限制隊列時,此方法通常優於 add(E) ,這可能無法僅通過拋出異常來插入元素。

參數
e- 要添加的元素
傳回值
true如果元素被添加到這個隊列,否則 false

實作 ufm::util::Queue< void * >.

◆ operator const Queue< E > &()

template<typename E >
ufm::util::ArrayQueue::operator const Queue< E > & ( void ) const
inline

類型轉換運算子,將 ArrayQueue 轉換為 ArrayQueue<E>&

樣版參數
E目標型別
傳回值
轉換後的 ArrayQueue<E>& 參考

◆ operator Queue< E > &()

template<typename E >
ufm::util::ArrayQueue::operator Queue< E > & ( void )
inline

類型轉換運算子,將 ArrayQueue 轉換為 ArrayQueue<E>&

樣版參數
E目標型別
傳回值
轉換後的 ArrayQueue<E>& 參考

◆ peek()

virtual void *& ufm::util::ArrayQueue::peek ( void )
overridevirtual

檢索但不刪除此隊列的頭部,如果此隊列為空,則返回 null 。

傳回值
E* - 這個隊列的頭部或者null,如果這個隊列是空的

實作 ufm::util::Queue< void * >.

◆ poll()

virtual void *& ufm::util::ArrayQueue::poll ( void )
overridevirtual

檢索並刪除此隊列的頭,如果此隊列為空,則返回null。

傳回值
E* - 這個隊列的頭部或者null,如果這個隊列是空的

實作 ufm::util::Queue< void * >.

◆ size()

virtual int ufm::util::ArrayQueue::size ( void ) const
overridevirtual

返回此集合中的元素數。

如果此收藏包含超過 Integer.MAX_VALUE個元素,則返回Integer.MAX_VALUE。

傳回值
uint32 - 此集合中的元素数

實作 ufm::util::Container.


此類別(class) 文件是由下列檔案中產生: