XPCOM 集合¶
nsTArray
和 AutoTArray
¶
nsTArray<T>
是一个用于保存各种对象的类型安全数组,类似于 std::vector<T>
。(请注意,nsTArray<T>
是动态大小的,与 std::array<T>
不同)以下是这两个之间映射的不完整列表
std::vector<T> |
nsTArray<T> |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rust 绑定¶
当 thin_vec
crate 在 Gecko 中构建时,thin_vec::ThinVec<T>
保证具有与 nsTArray
相同的内存布局和分配策略,这意味着这两种类型可以在 FFI 边界之间互换使用。由于 Rust 和 C++ 在运行析构函数时的时机不同,因此该类型不安全通过值在 FFI 边界之间传递。
元素类型 T
必须与 Rust 和 C++ 代码在内存上兼容才能在 FFI 上使用。
nsTHashMap
和 nsTHashSet
¶
这些类型是在 XPCOM 代码中编写新的 XPCOM 哈希映射和哈希集的推荐接口。
支持的哈希键¶
以下类型作为 nsTHashMap
和 nsTHashSet
的键参数受支持。
类型 |
哈希键 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
此列表中未包含的任何键必须继承自 PLDHashEntryHdr
类以实现手动哈希行为。
类参考¶
注意
在代码中,nsTHashMap
和 nsTHashSet
类型的声明方式并不完全像这样。这主要旨在作为一种实用的参考。
-
template<K, V>
class nsTHashMap<K, V>¶ nsTHashMap<K, V>
类当前定义为围绕nsBaseHashtable
的一个轻量级类型别名。有关更详细的文档,请参见该类上定义的方法。https://searchfox.org/mozilla-central/source/xpcom/ds/nsBaseHashtable.h
-
uint32_t Count() const¶
-
bool IsEmpty() const¶
-
bool Get(KeyType aKey, V *aData) const¶
获取值,返回一个标志,指示表中是否存在该条目。
-
V Get(KeyType aKey) const¶
获取值,如果表中不存在该条目,则返回一个默认初始化的对象。
-
Maybe<V> MaybeGet(KeyType aKey) const¶
获取值,如果表中不存在该条目,则返回 Nothing。
-
V &LookupOrInsert(KeyType aKey, Args&&... aArgs) const¶
-
V &LookupOrInsertWith(KeyType aKey, F &&aFunc) const¶
-
uint32_t Count() const¶
-
template<K>
class nsTHashSet<K>¶ nsTHashSet<K>
类当前定义为围绕nsTBaseHashSet
的一个轻量级类型别名。有关更详细的文档,请参见该类上定义的方法。https://searchfox.org/mozilla-central/source/xpcom/ds/nsTHashSet.h