#pragma once #include #include class Alignment; class PhrasePair; class SuffixArray; class TargetCorpus; class Mismatch; class PhrasePairCollection { public: typedef unsigned int INDEX; private: SuffixArray *m_suffixArray; TargetCorpus *m_targetCorpus; Alignment *m_alignment; std::vector > m_collection; std::vector< Mismatch* > m_mismatch, m_unaligned; int m_size; int m_max_lookup; int m_max_translation; int m_max_example; // No copying allowed. PhrasePairCollection(const PhrasePairCollection&); void operator=(const PhrasePairCollection&); public: PhrasePairCollection ( SuffixArray *, TargetCorpus *, Alignment *, int, int ); ~PhrasePairCollection (); int GetCollection( const std::vector& sourceString ); void Print(bool pretty) const; void PrintHTML() const; }; // sorting helper struct CompareBySize { bool operator()(const std::vector& a, const std::vector& b ) const { return a.size() > b.size(); } };