#pragma once #include #include /* * Contains a word and its trigrams */ class Word { public: /** Creates a word w with the sorted trigrams t */ Word(const std::string &w, const std::vector &t); /** Creates a word w and derives the trigrams internally */ Word(const std::string &w); /** Returns the word */ std::string get_word() const; /** Returns trigrams */ std::vector get_trigrams() const; /** Returns how many of the trigrams in t that are present in this word's trigram vector */ unsigned int get_matches(const std::vector &t) const; private: const std::string word; std::vector trigrams; friend std::ostream &operator<<(std::ostream &out, const Word &o); friend bool operator==(const Word &lhs, const Word &rhs); }; bool operator==(const Word &lhs, const Word &rhs);