Eina provides a set of iterator functions to manipulate data types, such as arrays.
These functions allow access to container elements in a generic way, without knowing which container is used (similar to iterators in the C++ STL). Iterators only allow sequential access (that is, from one element to the next one). For random access, Eina provides accessor functions.
Getting an iterator to access elements of a given container is done through
the functions of that particular container. There is no function to create a
generic iterator as iterators absolutely depend on the container. Note that
all iterators, regardless of the container type, are always deleted with the
same eina_iterator_free()
function.
To get the data and iterate, use the eina_iterator_next()
function. To
call a function on every single element of a container, use the
eina_iterator_foreach()
function.
In addition to iterator functions, each data type also owns a set of macros
that provide the iterators, such as FOREACH
or REVERSE_FOREACH
.