feat: use std::forward_list for results

This commit is contained in:
Michael Mandl 2024-03-20 13:25:28 +01:00
parent 510deb2d54
commit ba460cc00a
Signed by: mandlm
GPG key ID: 4AA25D647AA54CC7
8 changed files with 37 additions and 23 deletions

View file

@ -1,12 +1,14 @@
#pragma once
#include <forward_list>
#include <string>
#include <vector>
using std::string, std::string_view, std::vector;
using std::string, std::string_view, std::forward_list;
class Finder {
public:
virtual ~Finder() = default;
virtual vector<const string *> find_prefix(string_view search_term) const = 0;
virtual forward_list<const string *>
find_prefix(string_view search_term) const = 0;
};

View file

@ -2,11 +2,16 @@
#include "finder.h"
#include <vector>
using std::vector;
class LinearFinder : public Finder {
private:
const vector<string> &word_list_;
public:
LinearFinder(const vector<string> &word_list);
vector<const string *> find_prefix(string_view search_term) const override;
forward_list<const string *>
find_prefix(string_view search_term) const override;
};

View file

@ -2,12 +2,16 @@
#include "finder.h"
#include <vector>
class ParallelFinder : public Finder {
private:
const size_t thread_count_;
const vector<string> &word_list_;
const std::vector<string> &word_list_;
public:
ParallelFinder(const vector<string> &word_list, size_t thread_count);
vector<const string *> find_prefix(string_view search_term) const override;
ParallelFinder(const std::vector<string> &word_list, size_t thread_count);
std::forward_list<const std::string *>
find_prefix(std::string_view search_term) const override;
};