OCCT中的容器
本文主要对OCCT8的容器做一个系统介绍,主要介绍各容器对应的底层结构,以及相关容器之间的关系。
容器分组
数组
NCollection_Array1<TheItemType>:一维数组,同C++的std::arrayNCollection_Array2<TheItemType>:二维数组,基于NCollection_Array1实现
动态数组
NCollection_Vector = NCollection_DynamicArray: 动态数组,同C++的std::vector
链表
NCollection_List:单向链表,同C++的std::forward_listNCollection_Sequence:双向链表,同C++的std::list
集合
NCollection_Map:哈希集合,同C++的std::unordered_setNCollection_IndexedMap:在NCollection_Map基础上为每个元素维护一个索引号,可以通过索引号快速定位键NCollection_DoubleMap:双边哈希映射,双向绑定和查询
字典
NCollection_DataMap:哈希字典,同C++的std::unordered_mapNCollection_IndexedDataMap:在NCollection_DataMap基础上为每个元素维护一个索引号,可以通过索引号快速定位键
其它容器
NCollection_SparseArray:稀疏数组NCollection_Vec2:通用二维向量NCollection_Vec3:通用三维向量NCollection_Vec4:通用四维向量NCollection_PackedMap:针对整数类型进行内存优化的集合
OCCT8引入的新容器
NCollection_OrderedMap:在NCollection_Map基础上维护一个双向链表,用于维护元素的顺序,可顺序遍历,不同C++的std::setNCollection_OrderedDataMap:在NCollection_DataMap基础上维护一个双向链表,可顺序遍历,不同C++的std::mapNCollection_FlatDataMap:连续空间字典NCollection_FlatMap:连续空间集合NCollection_KDTree:KD树NCollection_UBTree:非平衡树NCollection_LinearVector:绝对连续空间的动态数组
集合的常见计算

- 并集(
Union)

- 交集(
Intersection)

- 差集(
Subtraction)

-
Difference
以下接口可用,是NCollection_MapAlgo命名空间内的方法:
1 |
|
(转载本站文章请注明作者和出处lihaohello.top,请勿用于任何商业用途)