Add _capacity for deque
This commit is contained in:
1 parent
fb40a4f904
commit
ff098c91f4
3 files changed
+36
-1
No files matched your search
Binary file not shown.
@@ -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
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user