diff options
| author | Tyge Løvset <[email protected]> | 2021-10-04 08:08:24 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-10-04 08:08:24 +0200 |
| commit | d314fa40bcfc3a7d5e4dfc8136aebff309db8667 (patch) | |
| tree | 0e10755092f5754d9bd43374750b413dec332798 /examples | |
| parent | 882e173a2cc9a09c3a96a330f981daa11e34e0d0 (diff) | |
| download | STC-modified-d314fa40bcfc3a7d5e4dfc8136aebff309db8667.tar.gz STC-modified-d314fa40bcfc3a7d5e4dfc8136aebff309db8667.zip | |
Removed c_apply_pair_n() macro. Small improvements in examples.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/csmap_erase.c | 52 | ||||
| -rw-r--r-- | examples/csmap_find.c | 9 |
2 files changed, 31 insertions, 30 deletions
diff --git a/examples/csmap_erase.c b/examples/csmap_erase.c index 66b45185..993f1837 100644 --- a/examples/csmap_erase.c +++ b/examples/csmap_erase.c @@ -3,41 +3,41 @@ #include <stc/cstr.h> #include <stdio.h> -#define i_tag my #define i_key int #define i_val_str +#define i_cnt mymap #include <stc/csmap.h> -void printmap(csmap_my map) +void printmap(mymap m) { - c_foreach (e, csmap_my, map) - printf(" [%d, %s]", e.ref->first, e.ref->second.str); - printf("\nsize() == %zu\n\n", csmap_my_size(map)); + c_foreach (elem, mymap, m) + printf(" [%d, %s]", elem.ref->first, elem.ref->second.str); + printf("\nsize() == %zu\n\n", mymap_size(m)); } int main() { - c_auto (csmap_my, m1) + c_auto (mymap, m1) { // Fill in some data to test with, one at a time - csmap_my_insert(&m1, 1, cstr_lit("A")); - csmap_my_insert(&m1, 2, cstr_lit("B")); - csmap_my_insert(&m1, 3, cstr_lit("C")); - csmap_my_insert(&m1, 4, cstr_lit("D")); - csmap_my_insert(&m1, 5, cstr_lit("E")); + mymap_insert(&m1, 1, cstr_lit("A")); + mymap_insert(&m1, 2, cstr_lit("B")); + mymap_insert(&m1, 3, cstr_lit("C")); + mymap_insert(&m1, 4, cstr_lit("D")); + mymap_insert(&m1, 5, cstr_lit("E")); puts("Starting data of map m1 is:"); printmap(m1); // The 1st member function removes an element at a given position - csmap_my_erase_at(&m1, csmap_my_advance(csmap_my_begin(&m1), 1)); + mymap_erase_at(&m1, mymap_advance(mymap_begin(&m1), 1)); puts("After the 2nd element is deleted, the map m1 is:"); printmap(m1); } - c_auto (csmap_my, m2) + c_auto (mymap, m2) { // Fill in some data to test with, one at a time, using c_apply_pair() - c_apply_pair(csmap_my, emplace, &m2, { + c_apply_pair(mymap, emplace, &m2, { {10, "Bob"}, {11, "Rob"}, {12, "Robert"}, @@ -47,30 +47,30 @@ int main() puts("Starting data of map m2 is:"); printmap(m2); - csmap_my_iter_t it1 = csmap_my_advance(csmap_my_begin(&m2), 1); - csmap_my_iter_t it2 = csmap_my_find(&m2, csmap_my_back(&m2)->first); + mymap_iter_t it1 = mymap_advance(mymap_begin(&m2), 1); + mymap_iter_t it2 = mymap_find(&m2, mymap_back(&m2)->first); // The 2nd member function removes elements // in the range [First, Last) - csmap_my_erase_range(&m2, it1, it2); + mymap_erase_range(&m2, it1, it2); puts("After the middle elements are deleted, the map m2 is:"); printmap(m2); } - c_auto (csmap_my, m3) + c_auto (mymap, m3) { // Fill in some data to test with, one at a time, using emplace - csmap_my_emplace(&m3, 1, "red"); - csmap_my_emplace(&m3, 2, "yellow"); - csmap_my_emplace(&m3, 3, "blue"); - csmap_my_emplace(&m3, 4, "green"); - csmap_my_emplace(&m3, 5, "orange"); - csmap_my_emplace(&m3, 6, "purple"); - csmap_my_emplace(&m3, 7, "pink"); + mymap_emplace(&m3, 1, "red"); + mymap_emplace(&m3, 2, "yellow"); + mymap_emplace(&m3, 3, "blue"); + mymap_emplace(&m3, 4, "green"); + mymap_emplace(&m3, 5, "orange"); + mymap_emplace(&m3, 6, "purple"); + mymap_emplace(&m3, 7, "pink"); puts("Starting data of map m3 is:"); printmap(m3); // The 3rd member function removes elements with a given Key - size_t count = csmap_my_erase(&m3, 2); + size_t count = mymap_erase(&m3, 2); // The 3rd member function also returns the number of elements removed printf("The number of elements removed from m3 is: %zu\n", count); puts("After the element with a key of 2 is deleted, the map m3 is:"); diff --git a/examples/csmap_find.c b/examples/csmap_find.c index 1b3320c9..eca14c52 100644 --- a/examples/csmap_find.c +++ b/examples/csmap_find.c @@ -33,9 +33,9 @@ using_print_collection(cvec_istr) void findit(csmap_istr c, csmap_istr_key_t val) { printf("Trying find() on value %d\n", val); - csmap_istr_value_t* result = csmap_istr_get(&c, val); // easier with get than find. - if (result) { - printf("Element found: "); print_elem(csmap_istr_value_toraw(result)); puts(""); + csmap_istr_iter_t result = csmap_istr_find(&c, val); // prefer contains() or get() + if (result.ref != csmap_istr_end(&c).ref) { + printf("Element found: "); print_elem(csmap_istr_value_toraw(result.ref)); puts(""); } else { puts("Element not found."); } @@ -61,7 +61,8 @@ int main() puts("Inserting the following vector data into m1:"); print_collection_cvec_istr(v); - c_foreach (i, cvec_istr, v) csmap_istr_emplace(&m1, i.ref->first, i.ref->second); + c_foreach (i, cvec_istr, cvec_istr_begin(&v), cvec_istr_end(&v)) + csmap_istr_emplace(&m1, i.ref->first, i.ref->second); puts("The modified map m1 is (key, value):"); print_collection_csmap_istr(m1); |
