diff --git a/QVectorSearch/mainwindow.cpp b/QVectorSearch/mainwindow.cpp index 1007502..8f7cdfa 100644 --- a/QVectorSearch/mainwindow.cpp +++ b/QVectorSearch/mainwindow.cpp @@ -33,7 +33,7 @@ void MainWindow::setupAlgorithmSelector() { void MainWindow::generateWordList() { Timer timer; - word_list_ = WordListGenerator::generate(); + word_list_ = WordListGenerator().generate(); timer.stop(); std::stringstream status_message; diff --git a/lib_vector_search/include/word_list_generator.h b/lib_vector_search/include/word_list_generator.h index 605b749..86c4b47 100644 --- a/lib_vector_search/include/word_list_generator.h +++ b/lib_vector_search/include/word_list_generator.h @@ -8,6 +8,5 @@ private: static const std::string charset_; public: - WordListGenerator() = delete; - static std::vector generate(const size_t multiplier = 1); + std::vector generate(); }; diff --git a/lib_vector_search/src/grouped_finder.cpp b/lib_vector_search/src/grouped_finder.cpp index 81ec7f8..3b4243f 100644 --- a/lib_vector_search/src/grouped_finder.cpp +++ b/lib_vector_search/src/grouped_finder.cpp @@ -22,8 +22,7 @@ GroupedFinder::find_prefix(std::string_view search_term) const { const auto word_list = group->second; const auto word_list_size = word_list.size(); - const auto thread_count = - std::min(std::thread::hardware_concurrency(), word_list_size); + const auto thread_count = std::thread::hardware_concurrency(); forward_list matching_words; mutex matching_words_mutex; diff --git a/lib_vector_search/src/word_list_generator.cpp b/lib_vector_search/src/word_list_generator.cpp index ba4cf06..e4bdf52 100644 --- a/lib_vector_search/src/word_list_generator.cpp +++ b/lib_vector_search/src/word_list_generator.cpp @@ -6,16 +6,18 @@ const std::string WordListGenerator::charset_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -std::vector WordListGenerator::generate(const size_t multiplier) { - std::vector word_list; - word_list.reserve(multiplier * std::pow(charset_.length(), 4)); +std::vector WordListGenerator::generate() { + const size_t multiplier = 1; + + std::vector 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) { - word_list.emplace_back( + result.emplace_back( std::initializer_list({char_1, char_2, char_3, char_4})); } } @@ -26,7 +28,7 @@ std::vector WordListGenerator::generate(const size_t multiplier) { std::random_device random_device; std::mt19937 random_number_generator(random_device()); - std::shuffle(word_list.begin(), word_list.end(), random_number_generator); + std::shuffle(result.begin(), result.end(), random_number_generator); - return word_list; + return result; } diff --git a/vector_search_cli/main.cpp b/vector_search_cli/main.cpp index 7417e9b..37c2171 100644 --- a/vector_search_cli/main.cpp +++ b/vector_search_cli/main.cpp @@ -14,7 +14,7 @@ vector generate_word_list() { cout << "\ngenerating word list" << endl; Timer generator_timer; - auto word_list = WordListGenerator::generate(5); + auto word_list = WordListGenerator().generate(); generator_timer.stop(); cout << "word list generator took " << generator_timer << endl;