![]() |
mFrame
|
輕量級連續記憶體區域包裝器,提供對陣列或記憶體片段的非擁有性引用 更多...
#include <Span.h>
公開方法(Public Methods) | |
Span (T const *data, size_t size) noexcept | |
從指針和大小構造 Span 對象 | |
template<size_t N> | |
Span (T const (&data)[N]) noexcept | |
從固定大小陣列構造 Span 對象 | |
virtual | ~Span (void) override |
虛擬解構函數 | |
Span (const Span &other) noexcept=default | |
複製建構函式 | |
Span & | operator= (const Span &other) noexcept=default |
複製賦值操作符 | |
Span (Span &&other) noexcept=default | |
移動建構函式 | |
Span & | operator= (Span &&other) noexcept=default |
移動賦值操作符 | |
virtual void | forEach (ufm::func::Consumer< T & > &action) override |
對 Span 中的每個元素執行指定操作 | |
virtual T * | elementAt (int index) const override |
獲取指定索引處的元素指針 | |
virtual int | nextIndex (int index) const override |
返回當前索引的下一個有效索引。 | |
virtual ufm::util::Iterator< T > | begin (void) override |
獲取指向集合開始的迭代器 | |
virtual ufm::util::Iterator< T > | end (void) override |
獲取指向集合結尾的迭代器 | |
size_t | size (void) const noexcept |
獲取 Span 包含的元素數量 | |
bool | empty (void) const noexcept |
檢查 Span 是否為空 | |
T const * | data (void) const noexcept |
獲取指向數據起始位置的指針 | |
T const & | operator[] (size_t index) const noexcept |
安全的陣列下標操作符 | |
![]() | |
void * | operator new (size_t n) |
使用運算子 new 分配記憶體 | |
void * | operator new (size_t n, void *p) |
在指定記憶體上調用運算子 new | |
virtual ufm::lang::Object & | getObject (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::Thread * | currentThread (void) const |
取得當前執行緒指標 | |
virtual int | hashcode (void) const |
返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
![]() | |
virtual | ~Interface (void)=default |
虛擬析構函式 | |
輕量級連續記憶體區域包裝器,提供對陣列或記憶體片段的非擁有性引用
T | 元素類型 |
Span 類別提供了一個類型安全的方式來操作連續記憶體中的數據,類似於 C++20 的 std::span。 它不擁有記憶體,僅持有指向數據的指針和大小資訊。
主要特性:
|
inlinenoexcept |
|
inlinenoexcept |
|
inlineoverridevirtual |
|
defaultnoexcept |
|
defaultnoexcept |
|
inlineoverridevirtual |
獲取指向集合開始的迭代器
返回用於範圍迭代的開始迭代器,支援 C++ 範圍 for 循環。
|
inlinenoexcept |
|
inlineoverridevirtual |
獲取指定索引處的元素指針
index | 要獲取的元素索引(0-based) |
提供邊界檢查的安全元素存取。索引超出範圍時返回空指針而非拋出異常。
|
inlinenoexcept |
|
inlineoverridevirtual |
獲取指向集合結尾的迭代器
返回用於範圍迭代的結尾迭代器,支援 C++ 範圍 for 循環。
|
inlineoverridevirtual |
|
inlineoverridevirtual |
返回當前索引的下一個有效索引。
index | 當前索引 |
如果當前索引已經是最後一個元素,則返回 -1。 如果當前索引無效(如 -1),則返回 0
|
defaultnoexcept |
|
defaultnoexcept |
|
inlinenoexcept |
安全的陣列下標操作符
index | 要存取的元素索引 |
當索引超出範圍時行為未定義(除錯版本可能觸發斷言) |
提供類似陣列的存取語法,但不進行邊界檢查以保持性能。 如需安全存取,請使用 elementAt() 方法。
|
inlinenoexcept |