refactor: add WordList type
This commit is contained in:
parent
dae5445efc
commit
48f05ddb4f
18 changed files with 111 additions and 92 deletions
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "finder.h"
|
||||
#include "word_list.h"
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
@ -10,7 +11,7 @@ private:
|
|||
std::map<char, std::vector<const std::string *>> groups_;
|
||||
|
||||
public:
|
||||
GroupedFinder(const std::vector<std::string> &word_list);
|
||||
GroupedFinder(const WordList &word_list);
|
||||
|
||||
virtual std::forward_list<const std::string *>
|
||||
find_prefix(std::string_view search_term) const override;
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
#pragma once
|
||||
|
||||
#include "finder.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
using std::vector;
|
||||
#include "word_list.h"
|
||||
|
||||
class LinearFinder : public Finder {
|
||||
private:
|
||||
const vector<std::string> &word_list_;
|
||||
const WordList &word_list_;
|
||||
|
||||
public:
|
||||
LinearFinder(const vector<std::string> &word_list);
|
||||
LinearFinder(const WordList &word_list);
|
||||
|
||||
std::forward_list<const std::string *>
|
||||
find_prefix(std::string_view search_term) const override;
|
||||
};
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
#pragma once
|
||||
|
||||
#include "finder.h"
|
||||
|
||||
#include <vector>
|
||||
#include "word_list.h"
|
||||
|
||||
class ParallelFinder : public Finder {
|
||||
private:
|
||||
const std::vector<std::string> &word_list_;
|
||||
const WordList &word_list_;
|
||||
|
||||
public:
|
||||
ParallelFinder(const std::vector<std::string> &word_list);
|
||||
ParallelFinder(const WordList &word_list);
|
||||
|
||||
std::forward_list<const std::string *>
|
||||
find_prefix(std::string_view search_term) const override;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "finder.h"
|
||||
#include "word_list.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
|
@ -9,7 +10,7 @@ private:
|
|||
std::vector<const std::string *> word_list_;
|
||||
|
||||
public:
|
||||
SortedLinearFinder(const std::vector<std::string> &word_list);
|
||||
SortedLinearFinder(const WordList &word_list);
|
||||
|
||||
std::forward_list<const std::string *>
|
||||
find_prefix(std::string_view search_term) const override;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
#include "finder.h"
|
||||
#include "word_list.h"
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
class SearchTreeNode {
|
||||
private:
|
||||
|
@ -19,7 +19,7 @@ public:
|
|||
|
||||
class SearchTree : public SearchTreeNode {
|
||||
public:
|
||||
SearchTree(const std::vector<std::string> &word_list);
|
||||
SearchTree(const WordList &word_list);
|
||||
};
|
||||
|
||||
class TreeFinder : public Finder {
|
||||
|
@ -27,7 +27,7 @@ private:
|
|||
SearchTree search_tree_;
|
||||
|
||||
public:
|
||||
TreeFinder(const std::vector<std::string> &word_list);
|
||||
TreeFinder(const WordList &word_list);
|
||||
|
||||
virtual std::forward_list<const std::string *>
|
||||
find_prefix(std::string_view search_term) const override;
|
||||
|
|
14
lib_vector_search/include/word_list.h
Normal file
14
lib_vector_search/include/word_list.h
Normal file
|
@ -0,0 +1,14 @@
|
|||
#pragma once
|
||||
|
||||
#include <filesystem>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class WordList : public std::vector<std::string> {
|
||||
public:
|
||||
WordList &multiply(size_t factor);
|
||||
WordList &shuffle();
|
||||
|
||||
static WordList fourCaps();
|
||||
static WordList fromFile(const std::filesystem::path &path);
|
||||
};
|
|
@ -1,13 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class WordListGenerator {
|
||||
private:
|
||||
static const std::string charset_;
|
||||
|
||||
public:
|
||||
WordListGenerator() = delete;
|
||||
static std::vector<std::string> generate(const size_t multiplier = 1);
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue