строка для повышения преобразования UUID
-
21-12-2019 - |
Вопрос
Я только что начал использовать Boost в C ++, и я просто хотел спросить пару вопросов, связанных с UUID.
Я загружаю в файл, который требует, я знаю UUID, поэтому я могу связать некоторые объекты вместе.По этой причине я пытаюсь написать свои собственные UUID, но я не уверен, есть ли какие-то особые условия для строк и т. Д., как строки, которые я использовал (обычно что-то базовое) не работает.Может кто-то указать мне верное направление?Я пробовал использовать строковый генератор, но безрезультатно, поэтому я предполагаю, что есть что-то не так с моими строками (которые в настоящее время были случайные слова).
Вот краткий пример, не может дать реальный код:
void loadFiles(std::string xmlFile);
void linkObjects(custObj network)
{
for (int i = 0; i < network->getLength(); i++)
{
network[i]->setId([boost::uuid]);
if (i > 0)
network[i]->addObj(network[i-1]->getId());
}
}
. Решение
Я занял ваш вопрос как «Мне нужен образец».Вот образец, который показывает
- .
- чтение
- написание
- Генерация
- сравнение
Увы с усилением UUID.
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/uuid/random_generator.hpp>
#include <boost/lexical_cast.hpp>
using namespace boost::uuids;
int main()
{
random_generator gen;
for (int i = 0; i < 10; ++i)
{
uuid new_one = gen(); // here's how you generate one
std::cout << "You can just print it: " << new_one << "; ";
// or assign it to a string
std::string as_text = boost::lexical_cast<std::string>(new_one);
std::cout << "as_text: '" << as_text << "'\n";
// now, read it back in:
uuid roundtrip = boost::lexical_cast<uuid>(as_text);
assert(roundtrip == new_one);
}
}
.
См.