Skip to content
Snippets Groups Projects
int_double_bimap.cpp 923 B
Newer Older
#include <cstdio>
#include <set>
#include <utility>
#include "ojl/bimap.hpp"

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

Oskar Lappi's avatar
Oskar Lappi committed
    ojl::bimap<int, double> bm;

    bm.insert(1,1.0);
    bm.insert(1,2.0);
    bm.insert(2,1.0);
    bm.insert(2,2.0);
    bm.insert(2,3.0);

    for (int i = 1; i < 3; i++){
        printf("Key %d, %lu vals\n", i, bm.l_count(i));
        const auto [lb, ub] = bm.l_equal_range(i);
        for (auto it = lb; it != ub; it++){
            printf(" %d : %lf\n", it->first, it->second);
        }
        //const auto [lb, ub] = bm.left_equal_range(i);
    }
    printf("\n");
    for (int i = 1; i < 4; i++){
        printf("Key %lf, %lu vals\n", (double)i, bm.r_count((double)i));
        const auto [lb, ub] = bm.r_equal_range((double)i);
        for (auto it = lb; it != ub; it++){
            printf(" %d : %lf\n", it->first, it->second);
        }
    }


    return 0;
}