#include "lfhmap.hpp" #include #include #include #include template void repeat(size_t nb, fn v) { while(nb--) { v(); } } int main() { constexpr size_t thread_cnt = 16; size_t v = 0; auto map = new mct20::lfhmap(); std::vector> finals; repeat(thread_cnt, [&](){ size_t v2 = v; v++; finals.push_back(std::async(std::launch::async, [&map, v2](){ for(int a = v2; a < 250000; a+=thread_cnt) { map->set(a, std::to_string(a)); if(auto acc = map->get(a); acc) { const std::string& t = acc.value(); if(t != std::to_string(a)) return 1; } else return 1; } return 0; })); }); for(auto& a : finals) a.wait(); int ret = 0; for(auto& a : finals) ret += a.get(); return ret; }