map.c 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "src/map.h"
  2. #include <stdio.h>
  3. #include <stddef.h>
  4. int
  5. main()
  6. {
  7. struct map_kv kv[] = {
  8. {1,"alice"},
  9. {3,"bob" },
  10. {99,"carol"},
  11. };
  12. struct map_ip * map = _pbcM_ip_new(kv, sizeof(kv)/sizeof(kv[0]));
  13. struct map_si * map2 = _pbcM_si_new(kv, sizeof(kv)/sizeof(kv[0]));
  14. int i;
  15. for (i=0;i<100;i++) {
  16. void *p= _pbcM_ip_query(map,i);
  17. if (p) {
  18. int id = 0;
  19. _pbcM_si_query(map2,p,&id);
  20. printf("%d %s\n",id,(const char *)p);
  21. }
  22. }
  23. struct map_sp * map3 = _pbcM_sp_new(0, NULL);
  24. _pbcM_sp_insert(map3,"Alice","alice");
  25. _pbcM_sp_insert(map3,"Bob","bob");
  26. void ** r = _pbcM_sp_query_insert(map3, "Carol");
  27. *r = "carol";
  28. r = _pbcM_sp_query_insert(map3, "Alice");
  29. *r = "not alice";
  30. printf("%s\n",(const char *)_pbcM_sp_query(map3,"Alice"));
  31. printf("%s\n",(const char *)_pbcM_sp_query(map3,"Bob"));
  32. printf("%s\n",(const char *)_pbcM_sp_query(map3,"Carol"));
  33. const char * key = NULL;
  34. for (;;) {
  35. void * v = _pbcM_sp_next(map3, &key);
  36. if (key == NULL)
  37. break;
  38. printf("%s : %s\n", key, (const char *)v);
  39. }
  40. return 0;
  41. }