title: Generating a Unique ID in c++
body: <p>What is the best way to generate a Unique ID from two (or more) short ints in C++?  I am trying to uniquely identify vertices in a graph.  The vertices contain two to four short ints as data, and ideally the ID would be some kind of a hash of them.  Prefer portability and uniqueness over speed or ease.  </p>
  
  <p>There are a lot of great answers here, I will be trying them all tonight to see what fits my problem the best.  A few more words on what I'm doing.  </p>
  
  <p>The graph is a collection of samples from an audio file.   I use the graph as a Markov Chain to generate a new audio file from the old file.  Since each vertex stores a few samples and points to another sample, and the samples are all short ints, it seemed natural to generate an ID from the data.  Combining them into a long long sounds good, but maybe something as simple as just a 0 1 2 3 <code>generateID</code> is all I need.  not sure how much space is necessary to guarantee uniqueness, if each vertex stores 2 16 bit samples, there are 2^32 possible combinations correct?  and so if each vertex stores 4 samples, there are 2^64 possible combinations?  </p>
  
  <p>Library and platform specific solutions not really relevant to this question.  I don't want anyone else who might compile my program to have to download additional libraries or change the code to suit their OS.  </p>