Add _capacity for deque

This commit is contained in:
Patrick Pelissier committed 2018-10-07 09:05:09 +02:00
1 parent fb40a4f904
commit ff098c91f4
3 files changed
+36 -1

No files matched your search

BIN
View File
Binary file not shown.
+34
View File
@@ -413,6 +413,40 @@
DEQUEI_CONTRACT(d); \
return d->count; \
} \
\
static inline size_t \
M_C(name, _capacity_back)(const deque_t v) \
{ \
DEQUEI_CONTRACT(v); \
size_t s = 0; \
for(M_C(name, _node_t) *n = M_C(name, _node_list_back)(v->list); \
n != NULL ; \
n = (n == v->back->node) ? NULL : \
M_C(name, _node_list_previous_obj)(v->list, n) ){ \
s += (n == v->back->node ? v->back->index : n->size); \
} \
return s; \
} \
\
static inline size_t \
M_C(name, _capacity_front)(const deque_t v) \
{ \
DEQUEI_CONTRACT(v); \
size_t s = 0; \
for(M_C(name, _node_t) *n = M_C(name, _node_list_front)(v->list); \
n != NULL ; \
n = (n == v->front->node) ? NULL : \
M_C(name, _node_list_next_obj)(v->list, n) ){ \
s += n->size - (n == v->front->node ? v->front->index : 0); \
} \
return s; \
} \
\
static inline size_t \
M_C(name, _capacity)(const deque_t v) \
{ \
return M_C(name, _capacity_back)(v)+M_C(name, _capacity_front)(v); \
} \
\
static inline bool \
M_C(name, _empty_p)(const deque_t d) \
+2 -1
View File
@@ -40,7 +40,8 @@ static void test_ti1(int n)
deque_t d;
deque_init(d);
assert(deque_capacity(d) == DEQUEUI_DEFAULT_SIZE);
for(int i =0; i < n ;i++) {
deque_push_back(d, i);
assert(*deque_back(d) == i);