我想生成隨機的UUID,因爲它對我的程序中的實例具有唯一標識符非常重要。我看着Boost UUID,但我無法設法生成UUID,因爲我不明白要使用哪個類和方法。在C++中使用Boost生成UUID的示例
如果有人能給我任何如何實現這個目標的例子,我將不勝感激。
我想生成隨機的UUID,因爲它對我的程序中的實例具有唯一標識符非常重要。我看着Boost UUID,但我無法設法生成UUID,因爲我不明白要使用哪個類和方法。在C++中使用Boost生成UUID的示例
如果有人能給我任何如何實現這個目標的例子,我將不勝感激。
一個基本的例子:
#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;
}
輸出示例:
7feb24af-fc38-44de-bc38-04defc3804de
喬治Fritzsche也的答案是確定,但也許有點誤導。如果您需要多個uuid,則應該重新使用該生成器。 也許這樣更清楚:
#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;
}
謝謝!我被兩對括號所困惑:) – Nikola 2010-07-15 16:04:27
你會如何將它分配給一個字符串?因爲我對每個實例都有一個公共基礎,所以我需要將UUID連接到基礎。再次感謝! – Nikola 2010-07-15 16:34:21
@nik:使用[流支持](http://www.boost.org/doc/libs/1_43_0/libs/uuid/uuid.html#boost/uuid/uuid_io.hpp) - 有一個'stringstream'例。或者讓'boost :: lexical_cast(uuid)'爲你做。 –
2010-07-15 16:41:00