2010-07-14 29 views
73

Tôi muốn tạo UUID ngẫu nhiên, vì nó chỉ quan trọng đối với các trường hợp trong chương trình của tôi có số nhận dạng duy nhất. Tôi nhìn vào Boost UUID, nhưng tôi không thể quản lý để tạo UUID vì tôi không hiểu lớp và phương thức nào để sử dụng.Ví dụ về tạo UUID bằng cách sử dụng Boost trong C++

Tôi sẽ đánh giá cao nếu ai đó có thể cho tôi bất kỳ ví dụ nào về cách đạt được điều này.

Trả lời

129

Một ví dụ cơ bản:

#include <boost/uuid/uuid.hpp>   // uuid class 
#include <boost/uuid/uuid_generators.hpp> // generators 
#include <boost/uuid/uuid_io.hpp>   // streaming operators etc. 

int main() { 
    boost::uuids::uuid uuid = boost::uuids::random_generator()(); 
    std::cout << uuid << std::endl; 
} 

đầu ra Ví dụ:

7feb24af-fc38-44de-bc38-04defc3804de

+0

Cảm ơn bạn! Tôi bị nhầm lẫn bởi hai cặp ngoặc đơn. :) – Nikola

+3

Và làm thế nào bạn sẽ gán nó vào một chuỗi? Bởi vì tôi có một cơ sở chung cho mọi trường hợp và tôi sẽ cần phải nối UUID với một cơ sở. Cảm ơn một lần nữa! – Nikola

+20

@nik: Sử dụng [hỗ trợ trực tuyến] (http://www.boost.org/doc/libs/1_43_0/libs/uuid/uuid.html#boost/uuid/uuid_io.hpp) - có một 'chuỗi ký tự' thí dụ. Hoặc để 'tăng :: lexical_cast (uuid)' làm điều đó cho bạn. –

15

Câu trả lời của Georg Fritzsche là ok nhưng có lẽ một chút gây hiểu lầm. Bạn nên tái sử dụng máy phát điện nếu bạn cần nhiều hơn một uuid. Có thể nó rõ ràng hơn theo cách này:

#include <iostream> 

#include <boost/uuid/uuid.hpp>   // uuid class 
#include <boost/uuid/uuid_generators.hpp> // generators 
#include <boost/uuid/uuid_io.hpp>   // streaming operators etc. 


int main() 
{ 
    boost::uuids::random_generator generator; 

    boost::uuids::uuid uuid1 = generator(); 
    std::cout << uuid1 << std::endl; 

    boost::uuids::uuid uuid2 = generator(); 
    std::cout << uuid2 << std::endl; 

    return 0; 
} 
+0

Tại sao bạn nên sử dụng lại máy phát điện? Đây có phải là tối ưu hóa hiệu suất hay mẹo an toàn không? – Fred

+2

cho hiệu suất – Nikko

+2

Nó sẽ không phải là một ID duy nhất rất tốt nếu sử dụng một máy phát điện mới gây ra vấn đề duy nhất. – xaxxon

Các vấn đề liên quan