Skip to content
Snippets Groups Projects
int_int_bimap.cpp 1.12 KiB
Newer Older
#include <cstdio>
#include <set>
#include <utility>
#include "ojl/bimap.hpp"

bimap<int, int>
test_bimap1()
{
    bimap<int, int> bm;
    bm.insert(1,10);
    bm.insert(1,12);
    bm.insert(1,13);

    bm.insert(2,20);
    bm.insert(2,12);
    bm.insert(2,23);


    bm.insert(3,13);
    bm.insert(3,23);

    bm.l_insert(4);
    return bm;
}

int
main(int argc, char* argv[])
{
    (void)argc;
    (void)argv;

    auto bm = test_bimap1();

    printf("All relations");
    for (auto &rel : bm.l_relations){
        printf(" %d : %d\n", rel.first, rel.second);
    }

    printf("\n");
    for (auto &l : bm.left_elements){
        printf("Key %d, %lu vals\n", l, bm.l_count(l));
        const auto [lb, ub] = bm.l_equal_range(l);
        for (auto it = lb; it != ub; it++){
            printf(" %d : %d\n", it->first, it->second);
        }
    }

    printf("\n");
    for (auto &r : bm.right_elements){
        printf("Key %d, %lu vals\n", r, bm.r_count(r));
        const auto [lb, ub] = bm.r_equal_range(r);
        for (auto it = lb; it != ub; it++){
            printf(" %d : %d\n", it->first, it->second);
        }
    }



    return 0;
}