, , - .
, , , libpqueue, : https://github.com/vy/libpqueue.
cmppri(), getpri(), setpri(), getpos(), setpos(), , .
- , :
typedef struct {
pqueue_pri_t pri;
void *data;
size_t pos;
} node_t;
, :
static size_t get_pos(void *a) {
return ((node_t *) a)->pos;
}
static void set_pos(void *a, size_t pos) {
((node_t *) a)->pos = pos;
}
node O(1) . ( node_t), std::unordered_map .
libpqueue - C Apache.
source
share