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 );