3 ms·
No, the problem is NOT the underlying runtime model. In fact it's often the opposite: the STL tries to provide too much. An excellent example is std::unordered
by millstone 8y ago
No, the problem is NOT the underlying runtime model. In fact it's often the opposite: the STL tries to provide too much.
An excellent example is std::unordered_map. This type was introduced to address perf problems with std::map. But unordered_map forces closed addressing, separate allocation, etc. which limit its performance. In return you get stronger iterator invalidation guarantees but these are rarely useful. Meanwhile Abseil's swiss tables, LLVM's DenseMap, etc. illustrate what a high-performance C++ hash table could be.