Cách tốt nhất để tạo ID duy nhất từ hai (hoặc nhiều) ngắn ints trong C++ là gì? Tôi đang cố gắng xác định duy nhất các đỉnh trong biểu đồ. Các đỉnh chứa hai đến bốn ints ngắn làm dữ liệu, và lý tưởng là ID sẽ là một loại băm của chúng. Ưu tiên tính di động và tính độc đáo trên tốc độ hoặc dễ dàng.Tạo ID duy nhất trong C++
Có rất nhiều câu trả lời tuyệt vời ở đây, tôi sẽ cố gắng hết sức tối nay để xem điều gì phù hợp nhất với vấn đề của tôi. Một vài từ nữa về những gì tôi đang làm.
Biểu đồ là tập hợp các mẫu từ tệp âm thanh. Tôi sử dụng biểu đồ dưới dạng Chuỗi Markov để tạo tệp âm thanh mới từ tệp cũ. Vì mỗi đỉnh lưu trữ một vài mẫu và các điểm vào một mẫu khác, và các mẫu đều là các int ngắn, có vẻ như tự nhiên để tạo một ID từ dữ liệu. Kết hợp chúng thành một âm thanh dài dài tốt, nhưng có thể một cái gì đó đơn giản như chỉ là là tất cả những gì tôi cần. không chắc chắn bao nhiêu không gian là cần thiết để đảm bảo tính duy nhất, nếu mỗi đỉnh lưu trữ 2 mẫu 16 bit, có 2^32 kết hợp có thể đúng không? và vì vậy nếu mỗi đỉnh lưu trữ 4 mẫu, có 2^64 kết hợp có thể?
Giải pháp cụ thể về nền tảng và thư viện không thực sự liên quan đến câu hỏi này. Tôi không muốn bất kỳ ai khác có thể biên dịch chương trình của tôi để tải xuống các thư viện bổ sung hoặc thay đổi mã cho phù hợp với hệ điều hành của họ.
Tôi thực sự nghĩ rằng một công đoàn sẽ cung cấp một cách sạch hơn để làm điều đó, nhưng đó là vấn đề về hương vị. –
fyi, loại-punning như thế này với một công đoàn là hành vi không xác định. – scpayson