#include <iostream>
#include <string>
#include <random>
#include <cassert>

std::string generate_random_string()
{
    static const constexpr char allowed_chars[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

    std::default_random_engine random_engine(std::random_device{}());
    std::uniform_int_distribution<std::size_t> random_distribution(0, sizeof(allowed_chars));

    std::string cname(static_cast<std::size_t>(std::uniform_int_distribution<std::size_t>{}(*const_cast<std::default_random_engine*>(std::addressof(static_cast<const std::default_random_engine&>(std::move(std::default_random_engine(std::random_device{}()))))), std::uniform_int_distribution<std::size_t>::param_type(6, sizeof(allowed_chars)))), '\0');

    for (std::string::value_type& chars : cname)
    {
        chars = allowed_chars[static_cast<std::size_t>(random_distribution(random_engine) % (sizeof(allowed_chars) - 1))];
    }

    return cname;
}

int main()
{
    for (int i = 0; i < 12000; ++i)
    {
        printf("%s\n", generate_random_string().c_str());
    }

    getchar();

    return 0;
}

标签: none

评论已关闭