I need to store intermediary calculation results in the memory. The elements must be quick to add and remove by their ID field and the container must support quick lookup for the one with the biggest value in the quality field.
Internally I would implement it using bindings to boost::multi_index, but I would prefer to use a native solution.
Implementation would most likely require sorted/hash indices that translate the specified external fields into some internal object ID, and one extra hash map to hold the actual objects accessible by that internal object ID.