#include #include "utf8.h" #include struct context_occurrence { unsigned int count{ 1 }; std::unordered_map counts; explicit context_occurrence(utf8::utfchar32_t character); void add(utf8::utfchar32_t character); std::unordered_map::iterator begin(); std::unordered_map::iterator end(); }; struct context_model { void add(utf8::utfchar32_t character); std::unordered_map::iterator begin(); std::unordered_map::iterator end(); private: std::list current_context; std::unordered_map occurrences; };