products:containers:index
Delphi 12 Athens Updates Available!
To download, click your product: DIContainers, DIConverters, DICreole, DIFileFinder, DIGoogleReader, DIHtmlLabel, DIHtmlParser, DIMime, DIRegEx, DISQLite3, DITidy, DIUcl, DIUnicode, DIXml, YuBrotli, YuImage, YuNetSurf, YuOpenSSL, YuPcre2, YuPdf, YuStemmer, YuXmlSec, YuZip.
To download, click your product: DIContainers, DIConverters, DICreole, DIFileFinder, DIGoogleReader, DIHtmlLabel, DIHtmlParser, DIMime, DIRegEx, DISQLite3, DITidy, DIUcl, DIUnicode, DIXml, YuBrotli, YuImage, YuNetSurf, YuOpenSSL, YuPcre2, YuPdf, YuStemmer, YuXmlSec, YuZip.
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | products:containers:index [2016/01/22 15:07] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== DIContainers ====== | ||
+ | {{page> | ||
+ | |||
+ | ===== Overview ===== | ||
+ | |||
+ | {{ containers_hierarchy.png? | ||
+ | |||
+ | * Hash containers | ||
+ | * Doubly-linked lists | ||
+ | * N-ary trees | ||
+ | * Vector containers | ||
+ | |||
+ | DIContainers is designed with easy customization in mind. Unlike other libraries, it strictly separates a containers' | ||
+ | |||
+ | * **Data** describes an individual item in the container, for example an Integer number. The data layer is mostly responsible to manage the item's memory, but also for copying, comparing, and streaming of items. Data items in DIContainers are made up of memory efficient Pascal records. Special item handlers take care to initialize and finalize items automatically as required. | ||
+ | |||
+ | * **Structure** describes the arrangement of items within the container, like linked list, linear vector, etc. The structure determines how quickly items can be added, manipulated and retrieved from the container. Using different item handlers, the same structure can provide for quite different containers (see hierarchy on the right). To create a new container for some type of data, it is often sufficient to reuse an already existing item handler or to create a new item handler for the new type of data. | ||
+ | |||
+ | * **Type**. On top of the general container classes, there are many ready-made containers which interface typed access to their items like strings (WideStrings and AnsiStrings), | ||
+ | |||
+ | Advanced container operations include cross-container assignment (i.e. from lists to vectors) and cascading streaming. | ||
+ | |||
+ | The graphic to the right shows the class hierarchy of containers contained in DIContainers. Bold font marks important classes like item handlers and structure containers. Their descendant classes in regular font provide typed access to their items. The graphic was automatically created from the DIContainers library by one of the demo applications. | ||
+ | |||
+ | {{tag> |
products/containers/index.txt · Last modified: 2016/01/22 15:07 by 127.0.0.1