Мне нужна структура вроде Map, но меня не интересует значение ключа, только значение, соответствующее ключу.
На карте мне нужно сделать что-то вроде этого:
map[1] = "value1"
map[2] = "value2"
Это дает мне ответственность не выбирать конфликтующие ключи. Я мог бы решить эту проблему, выполнив:
let handle = randomValue();
map[handle] = "value1"
, поскольку меня не интересует значение ключа, мне нужен только его дескриптор. По-прежнему существует проблема коллизии значений, если два случайных значения равны. Я мог бы написать небольшую вещь, которая проверяет, существует ли уже ключ на карте, и генерирует новый, но как только структура будет заполнена, я получу много коллизий.
Список кажется хорошим выбором в сначала, но это не так, поскольку, если я удалю один элемент, индексы всех остальных будут переупорядочены.
Вместо реализации моего собственного, я хотел бы знать, есть ли уже что-то подобное в C ++: карта, на которой вы получаете дескриптор, который позволяет вам получить доступ к значению.
У меня просто другое требование: иногда мне действительно нужно передать этот дескриптор в Rust, поэтому я думаю, что если этот дескриптор может быть переведено на номер и обратно было бы очень полезно.