]>
About template types Some of the container types listed in this section are defined for many base types. This is similar to templates in C++ and generics in Ada, but it is implemented via preprocessor macros since the C language cannot handle it. Here is the list of template types and the all base types they currently support: vector Vector is currently defined for igraph_real_t, long int (long), char (char), igraph_bool_t (bool). The default is igraph_real_t. matrix Matrix is currently defined for igraph_real_t, long int (long), char (char), igraph_bool_t (bool). The default is igraph_real_t. array3 Array3 is currently defined for igraph_real_t, long int (long), char (char), igraph_bool_t (bool). The default is igraph_real_t. stack Stack is currently defined for igraph_real_t, long int (long), char (char), igraph_bool_t (bool). The default is igraph_real_t. double-ended queue Dqueue is currently defined for igraph_real_t, long int (long), char (char), igraph_bool_t (bool). The default is igraph_real_t. heap Heap is currently defined for igraph_real_t, long int (long), char (char). In addition both maximum and minimum heaps are available. The default is the igraph_real_t maximum heap. The name of the base element (in parentheses) is added to the function names, except for the default type. Some examples: igraph_vector_t is a vector of igraph_real_t elements. Its functions are igraph_vector_init, igraph_vector_destroy, igraph_vector_sort, etc. igraph_vector_bool_t is a vector of igraph_bool_t elements, initialize it with igraph_vector_bool_init, destroy it with igraph_vector_bool_destroy, etc. igraph_heap_t is a maximum heap with igraph_real_t elements. The corresponding functions are igraph_heap_init, igraph_heap_pop, etc. igraph_heap_min_t is a minimum heap with igraph_real_t elements. The corresponding functions are called igraph_heap_min_init, igraph_heap_min_pop, etc. igraph_heap_long_t is a maximum heap with long int elements. Its function have the igraph_heap_long_ prefix. igraph_heap_min_long_t is a minimum heap containing long int elements. Its functions have the igraph_heap_min_long_ prefix. Note that the VECTOR and the MATRIX macros can be used on all vector and matrix types.