1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <stdio.h>
#include <stc/cmap.h>
static void test_destr(int* x) {
printf("destroy int: %d\n", *x);
}
declare_cmap(ii, int, int, test_destr);
declare_cmap(im, int, cmap_ii, cmap_ii_destroy);
int main(void) {
cmap_im m = cmap_init;
cmap_ii ini = cmap_init;
cmap_ii_put(&cmap_im_insert(&m, 100, ini)->value, 2000, 200);
cmap_ii_put(&cmap_im_insert(&m, 100, ini)->value, 2001, 201);
cmap_ii_put(&cmap_im_insert(&m, 100, ini)->value, 2000, 400); // update
cmap_ii_put(&cmap_im_insert(&m, 110, ini)->value, 2000, 500);
cmap_ii_put(&cmap_im_insert(&m, 120, ini)->value, 3000, 600);
c_foreach (i, cmap_im, m)
c_foreach (j, cmap_ii, i.item->value)
printf("%d: %d - %d\n", i.item->key, j.item->key, j.item->value);
cmap_im_destroy(&m);
}
|