Topics
Containers

Topics

 Array
 
 
 Compact List
 
 
 Hash Table
 
 
 Inline Array
 
 
 Inline List
 
 
 List
 
 
 Sparse Matrix
 
 
 Quaternion
 
 
 Red-Black tree
 
 
 Safe Pointer
 
 
 Trash
 
 
 Generic Value Storage
 
 

Detailed Description

Data types that contains other types. Examples: list, array and hash.

Introduction

Containers are data types that hold data and allow iteration over their elements with an Iterator Functions, or eventually an Accessor Functions.

The containers in eina are designed with performance in mind, one consequence of this is that they don't check the validity of data structures given to them(Magic).

Choosing container type

The choice of which container to use in each situation is very important in achieving good performance and readable code. The most common container types used are:

All types have pros and cons. The following considerations are good starting point in deciding which container to use:

Creating custom container types

Note
Before creating a custom container check if any of the existing ones suit your needs. For example, while there is no stack type Array is a very good substitute. Similarly there is no queue type however an List works very well as a queue.

If creating a custom container type, consider allowing access to the data in your container through Iterators and Accessors. To do so your container should have an iterator creation function and an accessor creation function. These functions should return properly populated _Eina_Iterator and _Eina_Accessor.