⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trellispathcollection.h.svn-base

📁 moses开源的机器翻译系统
💻 SVN-BASE
字号:
// $Id$/***********************************************************************Moses - factored phrase-based language decoderCopyright (C) 2006 University of EdinburghThis library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA***********************************************************************/#pragma once#include <set>#include <iostream>#include "TrellisPath.h"struct CompareTrellisPathCollection{	bool operator()(const TrellisPath* pathA, const TrellisPath* pathB) const	{		return (pathA->GetTotalScore() > pathB->GetTotalScore());	}};/** priority queue used in Manager to store list of contenders for N-Best list.	* Stored in order of total score so that the best path can just be popped from the top	*/class TrellisPathCollection{	friend std::ostream& operator<<(std::ostream&, const TrellisPathCollection&);protected:	typedef std::multiset<TrellisPath*, CompareTrellisPathCollection> CollectionType;	CollectionType m_collection;public:		//iterator begin() { return m_collection.begin(); }	TrellisPath *pop()	{		TrellisPath *top = *m_collection.begin();		// Detach		m_collection.erase(m_collection.begin());		return top;	}	~TrellisPathCollection()	{		// clean up		RemoveAllInColl(m_collection);	}		//! add a new entry into collection	void Add(TrellisPath *trellisPath)	{		m_collection.insert(trellisPath);	}		size_t GetSize() const	{		return m_collection.size();	}	void Prune(size_t newSize);};inline std::ostream& operator<<(std::ostream& out, const TrellisPathCollection& pathColl){	TrellisPathCollection::CollectionType::const_iterator iter;		for (iter = pathColl.m_collection.begin() ; iter != pathColl.m_collection.end() ; ++iter)	{		const TrellisPath &path = **iter;		out << path << std::endl;	}	return out;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -