Вопрос

Я только что начал использовать 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);
    }
}
.

См.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top