2024-11-20 17:46:21 +01:00
|
|
|
#pragma once
|
2021-10-27 15:15:47 +02:00
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
|
2024-11-20 17:46:21 +01:00
|
|
|
/*
|
|
|
|
* Contains a word and its triagrams
|
|
|
|
*/
|
2021-10-27 15:15:47 +02:00
|
|
|
class Word {
|
2024-11-20 17:46:21 +01:00
|
|
|
public:
|
|
|
|
/** Creates a word w with the sorted trigrams t */
|
|
|
|
Word(const std::string &w, const std::vector<std::string> &t);
|
|
|
|
|
|
|
|
/** Returns the word */
|
|
|
|
std::string get_word() const;
|
2021-10-27 15:15:47 +02:00
|
|
|
|
2024-11-20 17:46:21 +01:00
|
|
|
/** Returns how many of the trigrams in t that are present
|
|
|
|
in this word's trigram vector */
|
|
|
|
unsigned int get_matches(const std::vector<std::string> &t) const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
const std::string word;
|
|
|
|
const std::vector<std::string> triagrams;
|
|
|
|
friend std::ostream &operator<<(std::ostream &out, const Word &o);
|
|
|
|
};
|