#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; }