Add method _count_if
This commit is contained in:
1 parent
b2f005239b
commit
fcdfd836ec
2 files changed
+17
No files matched your search
@@ -167,6 +167,20 @@
|
|||||||
return count; \
|
return count; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
static inline size_t \
|
||||||
|
M_C(name, _count_if) (container_t l, bool (*func)(type_t const data)) \
|
||||||
|
{ \
|
||||||
|
it_t it; \
|
||||||
|
size_t count = 0; \
|
||||||
|
for (M_GET_IT_FIRST cont_oplist (it, l); \
|
||||||
|
!M_GET_IT_END_P cont_oplist (it) ; \
|
||||||
|
M_GET_IT_NEXT cont_oplist (it)) { \
|
||||||
|
if (func (*M_GET_IT_CREF cont_oplist (it))) \
|
||||||
|
count++ ; \
|
||||||
|
} \
|
||||||
|
return count; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
static inline void \
|
static inline void \
|
||||||
M_C(name, _map) (container_t l, void (*f)(type_t const) ) \
|
M_C(name, _map) (container_t l, void (*f)(type_t const) ) \
|
||||||
{ \
|
{ \
|
||||||
|
|||||||
@@ -168,6 +168,9 @@ static void test_array(void)
|
|||||||
assert( algo_array_count(l, -1) == 0);
|
assert( algo_array_count(l, -1) == 0);
|
||||||
assert( algo_array_sort_p(l) == false);
|
assert( algo_array_sort_p(l) == false);
|
||||||
|
|
||||||
|
assert( algo_array_count_if(l, func_test_42) == 1);
|
||||||
|
assert( algo_array_count_if(l, func_test_101) == 0);
|
||||||
|
|
||||||
array_int_it_t it;
|
array_int_it_t it;
|
||||||
algo_array_find_last(it, l, 17);
|
algo_array_find_last(it, l, 17);
|
||||||
assert (!array_int_end_p (it));
|
assert (!array_int_end_p (it));
|
||||||
|
|||||||
Reference in new issue
Block a user