CInt64Map
Overview
Module that defines the CInt64Map and the associated functions.
Example
#include "clingo/container/CInt64Map.h"
#include "clingo/io/print.h"
#include "clingo/lang/expect.h"
void print_info( cMapInfo const* info )
{
pjotln_c_( lfjds, 1024,
"empty: ", map_is_empty_c( info ), " / ",
"cap: ", map_cap_c( info ), " / ",
"load: ", map_load_c( info ), " / ",
"max load: ", info->maxLoad );
}
void print_map( CInt64Map const* map )
{
int64_t const* key;
int64_t const* val;
iterate_map_c_( itr, key, val, map, next_in_int64_map_c )
{
cRecorder* rec = &recorder_c_( 128 );
write_c_( rec, "({i64}/{i64}/{i64}) ", itr, *key, *val );
print_recorded_c( rec );
}
printf( "\n" );
}
int main( void )
{
init_tap_c_();
CInt64Map* map = retain_c( make_int64_map_c( 4, 0.5f ) );
cMapInfo const* info = info_of_int64_map_c( map );
print_info( info );
{
set_on_int64_map_c( map, 123, 1 );
set_on_int64_map_c( map, 314434, 2 );
set_on_int64_map_c( map, -3424, 41234 );
set_on_int64_map_c( map, 1234, 4636 );
set_on_int64_map_c( map, 3245245, 32566234 );
set_on_int64_map_c( map, 123, 2 );
}
print_info( info_of_int64_map_c( map ) );
print_map( map );
require_c_( remove_from_int64_map_c( map, 123 ) );
print_map( map );
release_c( map );
return finish_tap_c_();
}
Types and Definitions
Generated
CInt64Map
struct CInt64Map;
typedef struct CInt64Map CInt64Map;
Via the macros VAL_VAL_MAP_DEF_C_ and VAL_VAL_MAP_IMPL_C_ declared and implemented struct. The macros declare and implement also the following globals and functions.
/* create */
CInt64Map* make_int64_map_c( int64_t size, float maxLoad );
CInt64Map* new_int64_map_c( void );
/* manage */
cMapInfo const* info_of_int64_map_c( CInt64Map const* map );
bool resize_int64_map_c( CInt64Map* map, int64_t cap );
bool set_max_load_of_int64_map_c( CInt64Map* map, float maxLoad );
/* iterate */
cMapItr next_in_int64_map_c( CInt64Map const* map,
cMapItr itr,
int64_t const* key[static 1],
int64_t const* val[static 1 ]);
cMapItr next_var_in_int64_map_c( CInt64Map* map,
cMapItr itr,
int64_t const* key[static 1],
int64_t* val[static 1 ]);
/* api */
int64_t const* get_from_int64_map_c( CInt64Map* map, int64_t const* key );
int64_t* get_var_from_int64_map_c( CInt64Map* map, int64_t const* key );
bool in_int64_map_c( CInt64Map const* map, int64_t* key );
bool remove_from_int64_map_c( CInt64Map* map, int64_t* key );
bool set_on_int64_map_c( CInt64Map* map,
int64_t* key,
int64_t* val );