мне нужен контейнер, где:Список с уникальными элементами
- , когда я добавить новый элемент, который еще не существует, он добавляется в начало списка
- , когда я добавить элемент, уже существует, он не добавляется и II получить его индекс в списке
- когда элемент вставлен, он всегда имеет один и тот же индекс, и его можно получить с помощью этого индекса
std::set
сам по себе недостаточен, посколькуЯ не могу получить доступ к элементам с помощью [index]
. std::list
ни потому, что он не хранит уникальные только элементы.
Я использовал смешанное решение с list
и map
, но, возможно, для этого существует стандартный стандартный шаблон?
Я не хочу использовать boost. Вызов list::unique
после каждой вставки не является решением.
Как насчет того, чтобы катиться самостоятельно? Ты пробовал? Звучит как очень тонкая оболочка над 'list' ... –
@Soohjun: Реализация этого с помощью' list' не будет хорошей; начальное обнаружение столкновения было бы O (n), как это выглядело бы по индексу. –
список * и * map, если вы часто добавляете существующие элементы. –