Каков наилучший способ создания уникального идентификатора из двух (или более) коротких целых в C ++? Я пытаюсь однозначно идентифицировать вершины в графе. Вершины содержат от двух до четырех коротких вставок в качестве данных, и в идеале идентификатор должен быть своего рода хэшем. Предпочитают мобильность и уникальность по скорости или легкости.
Здесь много хороших ответов, сегодня вечером я попробую их все, чтобы понять, что лучше всего подходит для моей проблемы. Еще несколько слов о том, что я делаю.
График представляет собой набор образцов из аудиофайла. Я использую график в качестве цепи Маркова для создания нового аудиофайла из старого файла. Поскольку каждая вершина хранит несколько выборок и указывает на другую выборку, а все выборки являются короткими целыми числами, казалось естественным генерировать идентификатор из данных. Объединение их в длинные и длинные звучит хорошо, но, может быть, все, что мне нужно, - это просто 0 1 2 3 generateID
. Не знаете, сколько места необходимо для обеспечения уникальности, если в каждой вершине хранятся 2 16-битных выборки, существует ли 2 ^ 32 возможных правильных комбинаций? и так, если каждая вершина хранит 4 выборки, есть 2 ^ 64 возможных комбинаций?
Решения для конкретных библиотек и платформ, не относящиеся к данному вопросу. Я не хочу, чтобы кому-то другому, кто мог бы скомпилировать мою программу, пришлось загружать дополнительные библиотеки или изменять код в соответствии с их ОС.