#include #include #include #include #include #define AMOUNT 0x10000000llu template void set_add(const char* name){ std::set container; volatile clock_t start = clock(); size_t i = 0; do { container.insert((T)i++); if(!(T)(i)){ start += clock(); container.clear(); start -= clock(); } } while(i add | %6.3lfs\n", name, (double)result/CLOCKS_PER_SEC); } template void map_add(const char* name){ std::map container; volatile clock_t start = clock(); size_t i = 0; do { container[(T)i++] = (void*)0; if(!(T)(i)){ start += clock(); container.clear(); start -= clock(); } } while(i add | %6.3lfs\n", name, (double)result/CLOCKS_PER_SEC); } int main(){ set_add("uc"); set_add("us"); set_add("u"); set_add("lu"); set_add("llu"); set_add("z"); set_add("u8"); set_add("u16"); set_add("u32"); set_add("u64"); set_add("p"); set_add<__int128_t>("__int128_t"); printf("\n"); map_add("uc"); map_add("us"); map_add("u"); map_add("lu"); map_add("llu"); map_add("z"); map_add("u8"); map_add("u16"); map_add("u32"); map_add("u64"); map_add("p"); map_add<__int128_t>("__int128_t"); }