Ok, so I checked a lot of options and got something based on the idea of Matthieu M .. Currently I use std::map<key_type, std::list<value_type> >where it value_typecontains std::list<value_type>::iteratorfor myself, which is useful for uninstalling.
The deletion should check if the vector is free, which implies a request mapand, possibly, a call erase. In the worst case, the difficulty is that the keys are different, O(logN)for insert, O(1)for extraction, and O(logN)for removal. I have very good experimental results compared to other alternatives on my test machine.
std::vector (O (N) , ), , .