Changed iter_new to inter_init and added new iter_new that allocates the iterator on the heap
This commit is contained in:
1 parent
6002650f06
commit
c61ac2e347
29 files changed
+261
-71
No files matched your search
@@ -29,7 +29,7 @@ int main(int argc, char const *argv[])
|
||||
}
|
||||
|
||||
deque_iter iter;
|
||||
d_iter_new(&iter, numbers);
|
||||
d_iter_init(&iter, numbers);
|
||||
|
||||
size_t result, index, sum = 0;
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ void print_set(set *s)
|
||||
size_t index;
|
||||
int result;
|
||||
set_iter iter;
|
||||
set_iter_new(&iter, s);
|
||||
set_iter_init(&iter, s);
|
||||
for (set_iter_tostart(&iter); !set_iter_end(&iter);)
|
||||
{
|
||||
set_iter_next(&iter, &result, &index);
|
||||
|
||||
@@ -27,7 +27,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
deque_iter iter;
|
||||
d_iter_new(&iter, d);
|
||||
d_iter_init(&iter, d);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -43,7 +43,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
hmap_iter iter;
|
||||
hm_iter_new(&iter, hm);
|
||||
hm_iter_init(&iter, hm);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -42,7 +42,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
hset_iter iter;
|
||||
hs_iter_new(&iter, hs);
|
||||
hs_iter_init(&iter, hs);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -30,7 +30,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
heap_iter iter;
|
||||
h_iter_new(&iter, h);
|
||||
h_iter_init(&iter, h);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -25,7 +25,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
linked_iter iter;
|
||||
ll_iter_new(&iter, ll);
|
||||
ll_iter_init(&iter, ll);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -25,7 +25,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
list_iter iter;
|
||||
l_iter_new(&iter, l);
|
||||
l_iter_init(&iter, l);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -25,7 +25,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
queue_iter iter;
|
||||
q_iter_new(&iter, q);
|
||||
q_iter_init(&iter, q);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -25,7 +25,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
stack_iter iter;
|
||||
s_iter_new(&iter, s);
|
||||
s_iter_init(&iter, s);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -31,7 +31,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
tmap_iter iter;
|
||||
tm_iter_new(&iter, tm);
|
||||
tm_iter_init(&iter, tm);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -30,7 +30,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
tset_iter iter;
|
||||
ts_iter_new(&iter, ts);
|
||||
ts_iter_init(&iter, ts);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
@@ -24,7 +24,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Initialize iterator
|
||||
linked_iter iter;
|
||||
ll_iter_new(&iter, ll);
|
||||
ll_iter_init(&iter, ll);
|
||||
|
||||
// Move cursor to the end of the list
|
||||
ll_iter_toend(&iter);
|
||||
|
||||
@@ -54,7 +54,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Iterate over each element starting from the start (iter_new positions
|
||||
// the iterator to the start of the list) until the end of the list.
|
||||
for (l_iter_new(&iter, my_list); !l_iter_end(&iter);)
|
||||
for (l_iter_init(&iter, my_list); !l_iter_end(&iter);)
|
||||
{
|
||||
// Here index corresponds to the position of the result relative to all
|
||||
// other elements in the iteration. It is only a coincidence that the
|
||||
|
||||
@@ -53,7 +53,7 @@ int main(int argc, char const *argv[])
|
||||
|
||||
// Iterate through each letter and print it
|
||||
string_iter iter;
|
||||
str_iter_new(&iter, my_str);
|
||||
str_iter_init(&iter, my_str);
|
||||
size_t index;
|
||||
char result;
|
||||
|
||||
@@ -106,13 +106,13 @@ int main(int argc, char const *argv[])
|
||||
// Pop white space
|
||||
str_pop_front(str_out);
|
||||
|
||||
for (str_iter_new(&iter, my_str); !str_iter_end(&iter);)
|
||||
for (str_iter_init(&iter, my_str); !str_iter_end(&iter);)
|
||||
{
|
||||
str_iter_next(&iter, &result, &index);
|
||||
putchar(result);
|
||||
}
|
||||
printf("\nString length: %lu\n\n", str_count(my_str));
|
||||
for (str_iter_new(&iter, str_out); !str_iter_end(&iter);)
|
||||
for (str_iter_init(&iter, str_out); !str_iter_end(&iter);)
|
||||
{
|
||||
str_iter_next(&iter, &result, &index);
|
||||
putchar(result);
|
||||
|
||||
@@ -77,7 +77,7 @@ int main(int argc, char const *argv[])
|
||||
int key;
|
||||
size_t mult, _;
|
||||
|
||||
for (tm_iter_new(&iter, map); !tm_iter_end(&iter); /* empty */)
|
||||
for (tm_iter_init(&iter, map); !tm_iter_end(&iter); /* empty */)
|
||||
{
|
||||
// Map[key] = multiplicity
|
||||
tm_iter_next(&iter, &key, &mult, &_);
|
||||
|
||||
@@ -25,7 +25,7 @@ void print_set(set *s)
|
||||
size_t index;
|
||||
int result;
|
||||
set_iter iter;
|
||||
set_iter_new(&iter, s);
|
||||
set_iter_init(&iter, s);
|
||||
for (set_iter_tostart(&iter); !set_iter_end(&iter);)
|
||||
{
|
||||
set_iter_next(&iter, &result, &index);
|
||||
|
||||
+21
-2
@@ -82,7 +82,9 @@
|
||||
FMOD size_t PFX##_count(SNAME *_deque_); \
|
||||
FMOD size_t PFX##_capacity(SNAME *_deque_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -279,7 +281,24 @@
|
||||
return _deque_->capacity; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->cursor = target->front; \
|
||||
|
||||
+4
-4
@@ -20,7 +20,7 @@
|
||||
size_t index; \
|
||||
V value; \
|
||||
SNAME##_iter iter; \
|
||||
PFX##_iter_new(&iter, TARGET); \
|
||||
PFX##_iter_init(&iter, TARGET); \
|
||||
while (PFX##_iter_next(&iter, &value, &index)) \
|
||||
{ \
|
||||
BODY; \
|
||||
@@ -33,7 +33,7 @@
|
||||
size_t index; \
|
||||
V value; \
|
||||
SNAME##_iter iter; \
|
||||
PFX##_iter_new(&iter, TARGET); \
|
||||
PFX##_iter_init(&iter, TARGET); \
|
||||
PFX##_iter_toend(&iter); \
|
||||
while (PFX##_iter_prev(&iter, &value, &index)) \
|
||||
{ \
|
||||
@@ -48,7 +48,7 @@
|
||||
K key; \
|
||||
V value; \
|
||||
SNAME##_iter iter; \
|
||||
PFX##_iter_new(&iter, TARGET); \
|
||||
PFX##_iter_init(&iter, TARGET); \
|
||||
while (PFX##_iter_next(&iter, &key, &value, &index)) \
|
||||
{ \
|
||||
BODY; \
|
||||
@@ -62,7 +62,7 @@
|
||||
K key; \
|
||||
V value; \
|
||||
SNAME##_iter iter; \
|
||||
PFX##_iter_new(&iter, TARGET); \
|
||||
PFX##_iter_init(&iter, TARGET); \
|
||||
PFX##_iter_toend(&iter); \
|
||||
while (PFX##_iter_prev(&iter, &key, &value, &index)) \
|
||||
{ \
|
||||
|
||||
+24
-5
@@ -134,7 +134,9 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
FMOD bool PFX##_empty(SNAME *_map_); \
|
||||
FMOD size_t PFX##_count(SNAME *_map_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -300,7 +302,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
V result_value; \
|
||||
size_t index; \
|
||||
\
|
||||
for (PFX##_iter_new(&iter, _map_); !PFX##_iter_end(&iter);) \
|
||||
for (PFX##_iter_init(&iter, _map_); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
PFX##_iter_next(&iter, &result_key, &result_value, &index); \
|
||||
\
|
||||
@@ -332,7 +334,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
V result_value; \
|
||||
size_t index; \
|
||||
\
|
||||
for (PFX##_iter_new(&iter, _map_); !PFX##_iter_end(&iter);) \
|
||||
for (PFX##_iter_init(&iter, _map_); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
PFX##_iter_next(&iter, &result_key, &result_value, &index); \
|
||||
\
|
||||
@@ -388,7 +390,24 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
return _map_->count; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->cursor = 0; \
|
||||
@@ -524,7 +543,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
size_t index; \
|
||||
SNAME##_iter iter; \
|
||||
\
|
||||
for (PFX##_iter_new(&iter, _map_); !PFX##_iter_end(&iter);) \
|
||||
for (PFX##_iter_init(&iter, _map_); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
PFX##_iter_next(&iter, &key, &value, &index); \
|
||||
PFX##_insert(_new_map_, key, value); \
|
||||
|
||||
+30
-11
@@ -136,7 +136,9 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
FMOD SNAME *PFX##_difference(SNAME *_set1_, SNAME *_set2_); \
|
||||
FMOD SNAME *PFX##_symmetric_difference(SNAME *_set1_, SNAME *_set2_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -294,7 +296,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
size_t index; \
|
||||
SNAME##_iter iter; \
|
||||
\
|
||||
for (PFX##_iter_new(&iter, _set_); !PFX##_iter_end(&iter);) \
|
||||
for (PFX##_iter_init(&iter, _set_); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
PFX##_iter_next(&iter, &result, &index); \
|
||||
\
|
||||
@@ -317,7 +319,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
size_t index; \
|
||||
SNAME##_iter iter; \
|
||||
\
|
||||
for (PFX##_iter_new(&iter, _set_); !PFX##_iter_end(&iter);) \
|
||||
for (PFX##_iter_init(&iter, _set_); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
PFX##_iter_next(&iter, &result, &index); \
|
||||
\
|
||||
@@ -356,8 +358,8 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
if (!_set_r_) \
|
||||
return false; \
|
||||
\
|
||||
PFX##_iter_new(&iter1, _set1_); \
|
||||
PFX##_iter_new(&iter2, _set2_); \
|
||||
PFX##_iter_init(&iter1, _set1_); \
|
||||
PFX##_iter_init(&iter2, _set2_); \
|
||||
\
|
||||
for (PFX##_iter_tostart(&iter1); !PFX##_iter_end(&iter1);) \
|
||||
{ \
|
||||
@@ -388,7 +390,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
SNAME *_set_A_ = _set1_->count < _set2_->count ? _set1_ : _set2_; \
|
||||
SNAME *_set_B_ = _set_A_ == _set1_ ? _set2_ : _set1_; \
|
||||
\
|
||||
PFX##_iter_new(&iter, _set_A_); \
|
||||
PFX##_iter_init(&iter, _set_A_); \
|
||||
\
|
||||
for (PFX##_iter_tostart(&iter); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
@@ -412,7 +414,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
if (!_set_r_) \
|
||||
return false; \
|
||||
\
|
||||
PFX##_iter_new(&iter, _set1_); \
|
||||
PFX##_iter_init(&iter, _set1_); \
|
||||
\
|
||||
for (PFX##_iter_tostart(&iter); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
@@ -436,8 +438,8 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
if (!_set_r_) \
|
||||
return false; \
|
||||
\
|
||||
PFX##_iter_new(&iter1, _set1_); \
|
||||
PFX##_iter_new(&iter2, _set2_); \
|
||||
PFX##_iter_init(&iter1, _set1_); \
|
||||
PFX##_iter_init(&iter2, _set2_); \
|
||||
\
|
||||
for (PFX##_iter_tostart(&iter1); !PFX##_iter_end(&iter1);) \
|
||||
{ \
|
||||
@@ -458,7 +460,24 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
return _set_r_; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->cursor = 0; \
|
||||
@@ -591,7 +610,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 191, 383, 769, 1531,
|
||||
size_t index; \
|
||||
SNAME##_iter iter; \
|
||||
\
|
||||
for (PFX##_iter_new(&iter, _set_); !PFX##_iter_end(&iter);) \
|
||||
for (PFX##_iter_init(&iter, _set_); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
PFX##_iter_next(&iter, &value, &index); \
|
||||
PFX##_insert(_new_set_, value); \
|
||||
|
||||
+21
-2
@@ -83,7 +83,9 @@ typedef enum HeapOrder
|
||||
FMOD size_t PFX##_count(SNAME *_heap_); \
|
||||
FMOD size_t PFX##_capacity(SNAME *_heap_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -247,7 +249,24 @@ typedef enum HeapOrder
|
||||
return _heap_->capacity; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->cursor = 0; \
|
||||
|
||||
+21
-2
@@ -99,7 +99,9 @@
|
||||
FMOD SNAME##_node *PFX##_next_node(SNAME##_node *_node_); \
|
||||
FMOD SNAME##_node *PFX##_prev_node(SNAME##_node *_node_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -558,7 +560,24 @@
|
||||
return _node_->prev; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->cursor = target->head; \
|
||||
|
||||
+21
-2
@@ -89,7 +89,9 @@
|
||||
FMOD bool PFX##_fits(SNAME *_list_, size_t size); \
|
||||
FMOD size_t PFX##_capacity(SNAME *_list_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -480,7 +482,24 @@
|
||||
return _list_->capacity; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->cursor = 0; \
|
||||
|
||||
+21
-2
@@ -77,7 +77,9 @@
|
||||
FMOD size_t PFX##_count(SNAME *_queue_); \
|
||||
FMOD size_t PFX##_capacity(SNAME *_queue_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -217,7 +219,24 @@
|
||||
return _queue_->capacity; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->cursor = target->front; \
|
||||
|
||||
+21
-2
@@ -74,7 +74,9 @@
|
||||
FMOD size_t PFX##_count(SNAME *_stack_); \
|
||||
FMOD size_t PFX##_capacity(SNAME *_stack_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -204,7 +206,24 @@
|
||||
return _stack_->capacity; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->cursor = iter->target->count - 1; \
|
||||
|
||||
+21
-2
@@ -88,7 +88,9 @@
|
||||
FMOD bool PFX##_empty(SNAME *_map_); \
|
||||
FMOD size_t PFX##_count(SNAME *_map_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -460,7 +462,24 @@
|
||||
return _map_->count; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->index = 0; \
|
||||
|
||||
+27
-8
@@ -90,7 +90,9 @@
|
||||
FMOD SNAME *PFX##_difference(SNAME *_set1_, SNAME *_set2_); \
|
||||
FMOD SNAME *PFX##_symmetric_difference(SNAME *_set1_, SNAME *_set2_); \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target); \
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target); \
|
||||
FMOD bool PFX##_iter_start(SNAME##_iter *iter); \
|
||||
FMOD bool PFX##_iter_end(SNAME##_iter *iter); \
|
||||
FMOD void PFX##_iter_tostart(SNAME##_iter *iter); \
|
||||
@@ -443,8 +445,8 @@
|
||||
if (!_set_r_) \
|
||||
return false; \
|
||||
\
|
||||
PFX##_iter_new(&iter1, _set1_); \
|
||||
PFX##_iter_new(&iter2, _set2_); \
|
||||
PFX##_iter_init(&iter1, _set1_); \
|
||||
PFX##_iter_init(&iter2, _set2_); \
|
||||
\
|
||||
for (PFX##_iter_tostart(&iter1); !PFX##_iter_end(&iter1);) \
|
||||
{ \
|
||||
@@ -475,7 +477,7 @@
|
||||
SNAME *_set_A_ = _set1_->count < _set2_->count ? _set1_ : _set2_; \
|
||||
SNAME *_set_B_ = _set_A_ == _set1_ ? _set2_ : _set1_; \
|
||||
\
|
||||
PFX##_iter_new(&iter, _set_A_); \
|
||||
PFX##_iter_init(&iter, _set_A_); \
|
||||
\
|
||||
for (PFX##_iter_tostart(&iter); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
@@ -498,7 +500,7 @@
|
||||
if (!_set_r_) \
|
||||
return false; \
|
||||
\
|
||||
PFX##_iter_new(&iter, _set1_); \
|
||||
PFX##_iter_init(&iter, _set1_); \
|
||||
\
|
||||
for (PFX##_iter_tostart(&iter); !PFX##_iter_end(&iter);) \
|
||||
{ \
|
||||
@@ -521,8 +523,8 @@
|
||||
if (!_set_r_) \
|
||||
return false; \
|
||||
\
|
||||
PFX##_iter_new(&iter1, _set1_); \
|
||||
PFX##_iter_new(&iter2, _set2_); \
|
||||
PFX##_iter_init(&iter1, _set1_); \
|
||||
PFX##_iter_init(&iter2, _set2_); \
|
||||
\
|
||||
for (PFX##_iter_tostart(&iter1); !PFX##_iter_end(&iter1);) \
|
||||
{ \
|
||||
@@ -541,7 +543,24 @@
|
||||
return _set_r_; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_new(SNAME##_iter *iter, SNAME *target) \
|
||||
FMOD SNAME##_iter *PFX##_iter_new(SNAME *target) \
|
||||
{ \
|
||||
SNAME##_iter *iter = malloc(sizeof(SNAME##_iter)); \
|
||||
\
|
||||
if (!iter) \
|
||||
return NULL; \
|
||||
\
|
||||
PFX##_iter_init(iter, target); \
|
||||
\
|
||||
return iter; \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_free(SNAME##_iter *iter) \
|
||||
{ \
|
||||
free(iter); \
|
||||
} \
|
||||
\
|
||||
FMOD void PFX##_iter_init(SNAME##_iter *iter, SNAME *target) \
|
||||
{ \
|
||||
iter->target = target; \
|
||||
iter->index = 0; \
|
||||
|
||||
+10
-10
@@ -44,7 +44,7 @@ void deque_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
deque_iter iter;
|
||||
d_iter_new(&iter, d);
|
||||
d_iter_init(&iter, d);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -86,7 +86,7 @@ void hashmap_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
hmap_iter iter;
|
||||
hm_iter_new(&iter, hm);
|
||||
hm_iter_init(&iter, hm);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -137,7 +137,7 @@ void hashset_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
hset_iter iter;
|
||||
hs_iter_new(&iter, hs);
|
||||
hs_iter_init(&iter, hs);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -178,7 +178,7 @@ void heap_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
heap_iter iter;
|
||||
h_iter_new(&iter, h);
|
||||
h_iter_init(&iter, h);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -219,7 +219,7 @@ void linkedlist_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
linked_iter iter;
|
||||
ll_iter_new(&iter, ll);
|
||||
ll_iter_init(&iter, ll);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -260,7 +260,7 @@ void list_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
list_iter iter;
|
||||
l_iter_new(&iter, l);
|
||||
l_iter_init(&iter, l);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -301,7 +301,7 @@ void queue_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
queue_iter iter;
|
||||
q_iter_new(&iter, q);
|
||||
q_iter_init(&iter, q);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -342,7 +342,7 @@ void stack_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
stack_iter iter;
|
||||
s_iter_new(&iter, s);
|
||||
s_iter_init(&iter, s);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -384,7 +384,7 @@ void treemap_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
tmap_iter iter;
|
||||
tm_iter_new(&iter, tm);
|
||||
tm_iter_init(&iter, tm);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
@@ -433,7 +433,7 @@ void treeset_iter_test(void)
|
||||
|
||||
// Initialize iterator
|
||||
tset_iter iter;
|
||||
ts_iter_new(&iter, ts);
|
||||
ts_iter_init(&iter, ts);
|
||||
|
||||
// Make the iterator go back and forward
|
||||
for (int j = 0; j < 4; j++)
|
||||
|
||||
Reference in new issue
Block a user