VectorSearch/word_list_generator.cpp

35 lines
892 B
C++

#include "word_list_generator.h"
#include <algorithm>
#include <cmath>
#include <random>
const std::string WordListGenerator::charset_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
std::vector<std::string> WordListGenerator::generate() {
const size_t multiplier = 10;
std::vector<std::string> result;
result.reserve(multiplier * std::pow(charset_.length(), 4));
for (auto char_1 : charset_) {
for (auto char_2 : charset_) {
for (auto char_3 : charset_) {
for (auto char_4 : charset_) {
for (auto i = 0; i < multiplier; ++i) {
result.emplace_back(
std::initializer_list<char>({char_1, char_2, char_3, char_4}));
}
}
}
}
}
std::random_device random_device;
std::mt19937 random_number_generator(random_device());
std::shuffle(result.begin(), result.end(), random_number_generator);
return result;
}