On 30.07.22 06:38, Jooseong Lee via Boost wrote:
Dear Rainer,
Compared with boost::unordered_map and boost::container::flat_set, I repeated inserting/retrieving/erasing 1,000,000 random std::int64_t in random order, and see the following results in my machine: (gcc 11.2 -O3) (repeated 200 times for each target for B-Tree and unordered_set, repeated 10 times for flat_set)
My B-Tree: insert 196.22 ms, lookup 205.64 ms, erase 233.24 ms boost::container::flat_set : insert 58402.9 ms, lookup 217.73 ms, erase 59075.2 ms boost::unordered_set : insert 189.45 ms, lookup 232.19 ms, erase 268.01 ms
OK, I'm convinced. Your container seems to have competitive lookup times, slightly better even, without the drawbacks of flat_set and unordered_set (i.e. pathological insert/erase times for flat_set, undefined iteration order and the need to provide a hash function for unordered_set). -- Rainer Deyke (rainerd@eldwood.com)