I need a container, where:
- when I add a new element that does not exist yet, it is added to the top of the list
- when I add an element that already exists, it is not added and I I get its index in the list
- once the element is inserted, it always has the same index and it can be accessed using this index
std::set
alone is insufficient, because I cannot access the elements with [index]
. std::list
neither, because it does not store unique only elements.
I used a mixed solution with list
and map
but maybe there is some standard, generic template for that?
I don't want to use boost. Invoking list::unique
after every insertion is no solution.