Collections

The Collections component contains classes that handle dynamically sized aggregates of data. They include a wide range of collections such as arrays, lists and maps.

Collections classes are generic, that is, they can hold a variety of objects, which do not necessarily inherit from a unique root class. When you need to use a collection of a given type of object you must instantiate it for this specific type of element. Once this declaration is compiled all functions that are available on the generic collection are also available on your instantiated class. Note, however, that:

Each collection directly used as an argument in an Open CASCADE public syntax is instantiated in an Open CASCADE component using the corresponding generic class in package TCollection, by means of compiling the CDL declaration of the instance.

Alternatively all types of generic collections are available via C++ classes defined in the nocdlpack unit NCollection. In this case there is no need in support of the CDL language and WOK environment for building the project.

The TColStd package (Collections of Standard Objects component) provides numerous instantiations of these generic collections with objects from the package Standard or from the Strings component.

The Collections component provides a wide range of generic collections:

Arrays are generally used for a quick access to an item, however an array is a fixed sized aggregate.

Sequences are variable sized structures, they avoid the use of large and quasi-empty arrays. But a sequence item is longer to access than an array item: only an exploration in sequence is efficient (but sequences are not adapted for numerous explorations).

- Arrays and sequences are commonly used as data structures for more complex objects.

- On the other hand maps are dynamic structures where the size is constantly adapted to the number of inserted items and access to an item is the fastest. Maps structures are commonly used in cases of numerous explorations: they are typically internal data structures for complex algorithms. Sets generate the same results as maps but computation time is considerable.

- Lists, queues and stacks are minor structures similar to sequences but with other exploration algorithms.

Most collections follow value semantics: their instances are the actual collections, not handles to a collection. Only arrays, sequences and sets may also be manipulated by handle, and therefore shared.

See Also

Exceptions component, Standard package

Collections of Standard Objects component, TColStd package

Strings component