In game development, we use associative maps for many things. Dynamic loading, object reflection, rendering, shader management. A lot of them fit the following usage pattern: The keys and values have simple integer or pointer types. The keys are effectively random. The basic operation is lookup-or-insert: Look for an existing item first, and add one if not found. Usually, the item is found. Delete