OpenCASCADE Foundation Classes
Collections, Strings and Unit Conversion
OpenCASCADE基礎(chǔ)庫之集合、字符串和單位轉(zhuǎn)換
一、集合 Collections
1. 概述 Overview
集合Collections包含可處理動態(tài)大小的數(shù)據(jù)類,包括數(shù)組、鏈表、映射等。集合中的類是泛型的,即集合可以保存任何對象數(shù)據(jù)而不用關(guān)心是不是從一個基類派生而來的對象。當(dāng)使用集合來保存指定的對象時,你必須從指定的類型來實(shí)例化。當(dāng)聲明編譯后,通用集合的所有函數(shù)對實(shí)例化后的類都可用。
l Each collection directly used as argument in an OpenCASCADE public syntax is instantiated in a OpenCASCADE component;
l The TColStd package(Collections of Standard Objects component)provides numerous instantiations of these generic collections with objects from the Standard package or from the Strings component;
集合部件提供很多通用的集合,如下:
l 數(shù)組Arrays:常用于快速訪問數(shù)據(jù),盡管其大小是固定的;
l 序列Sequences:是大小不固定的數(shù)據(jù)結(jié)構(gòu),可用于大量數(shù)據(jù)的存儲。但是序列中數(shù)據(jù)的訪問要比數(shù)據(jù)中的慢。序列和數(shù)組常用于作為復(fù)雜對象的數(shù)據(jù)。
l 映射Maps:映射也是動態(tài)的數(shù)據(jù)結(jié)構(gòu),但是其大小總是與插入的數(shù)據(jù)相適應(yīng)且訪問速度很快。
l 鏈表、隊(duì)列、棧與序列類似;
包TCollection中通用的集合Generic general-purpose aggregates:
l Array1
l Array2
l HArray1
l HArray2
l HSequence
l HSet
l List
l Queue
l Sequence
l Set
l Stack
包TCollection中的通用映射類Generic Maps:
l BasicMap
l DataMap
l DoubleMap
l IndexedMap
l IndexedDataMap
l Map
l MapHasher
包TCollection中的遍歷器 Iterators:
l BasicMapIterator;
l DataMapIterator;
l DoubleMapIterator;
l ListIterator;
l MapIterator;
l SetIterator;
l StackIterator;
2. 通用集合 Generic general-purpose Aggregates
TCollection(The collections of standard object)類提供常用的泛型集合。它有個限制:OCCT泛型類需要兼容CDL的定義,所以只能在WOK中被實(shí)例化。
NCollection部分是為了滿足不使用WOK開發(fā)環(huán)境的用戶的需要。它完全可以替換TCollection中的類來使用。
l TCollection_Array1:在現(xiàn)在的Reference文檔中沒有發(fā)現(xiàn),只有NCollection_Array1
l TCollection_Array2:二維數(shù)組;
l TCollection_HArray1:
l TCollection_HArray2:
l TCollection_HSequence:
l TCollection_HSet:
l TCollection_List:
l TCollection_Queue:FIFO,First In First Out;
l TCollection_Sequence:
l TCollection_Set:
l TCollection_Stack:LIFO, Last In First Out;
3. 通用映射 Generic Maps
TCollection_BasicMap是Root class for maps。Maps是一種可以通過鍵Key快速訪問其數(shù)據(jù)的動態(tài)可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)。
l TCollection_MapHasher
l TCollection_DataMap
l TCollection_DataMapIterator
l TCollection_MapHasher
l TCollection_DoubleMap
l TCollection_DoubleMapIterator
l TCollection_IndexedDataMap
l TCollection_IndexedMap
l TCollection_Map
4. 遍歷器 Iterators
l TCollection_BasicMapIterator
l TCollection_DataMapIterator
l TCollection_DoubleMapIterator
l TCollection_ListIterator
l TCollection_MapIterator
l TCollection_SetIterator
l TCollection_StackIterator
二、標(biāo)準(zhǔn)對象集合Collections of Standard Objects
略。
三、字符串 Strings
1. 概述 Overview
Strings提供了操作字符串的功能。Strings是可以處理動態(tài)大小的字符序列的類,字符包括ASCII(通常為8位字符)和Unicode(16位字符)。Strings也是由手柄控制。
Strings (TCollection 包)
l AsciiString
l ExtendedString
l HAsciiString
l HExtendedString
Conversion (Resource 包)
l Unicode
2. 字符串
l TCollection_AsciiString:處理可變長的ASCII(8位)字符串的類;
l TCollection_ExtendString:處理可變長UNICODE(16位)字符串的類;
其相應(yīng)的手柄類分別為:
l TCollection_HAsciiString:
l TCollection_HExtendedString:
3. 轉(zhuǎn)換 Conversion
l Resource_Unicode:提供將非ASCII的字符串(ANSI, EUC, GB, SJIS)轉(zhuǎn)換成UNICODE字符串。
四、單位轉(zhuǎn)換 Unit Conversion
包UnitsAPI中的全局函數(shù)可以用來將數(shù)據(jù)在任意單位之間進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換在以下三種單位系統(tǒng)中執(zhí)行:
l SI System:標(biāo)準(zhǔn)國際單位系統(tǒng);
l 用戶Local System:
l 用戶Current System: