¿Cuál es la mejor manera de usar el tipo C uuid_t como clave en un std :: map?

¿Es esta una forma adecuada de proporcionar claves únicas en un mapa? En otras palabras, ¿la clave se hace a partir del valor único contenido en el uuid, o se hace desde el puntero a lauuid_t struct? Una pregunta al margen, ¿hay un contenedor más eficiente, cuando no me importa el pedido de llaves dentro del contenedor?

#include <uuid/uuid.h>

int main(int argc, char **argv)
{    
   std::map<uuid_t,int> myMap;         

   uuid_t id1;
   uuid_t id2;

   uuid_generate( (unsigned char *)&id1 );  
   uuid_generate( (unsigned char *)&id2 );

   myMap[id1] = 5;
   myMap[id2] = 4;

}

Respuestas a la pregunta(3)

Su respuesta a la pregunta