00001 #include "TrellisPathCollection.h"
00002
00003 namespace Moses
00004 {
00005
00006 void TrellisPathCollection::Prune(size_t newSize)
00007 {
00008 size_t currSize = m_collection.size();
00009
00010 if (currSize <= newSize)
00011 return;
00012
00013 CollectionType::reverse_iterator iterRev;
00014 for (iterRev = m_collection.rbegin() ; iterRev != m_collection.rend() ; ++iterRev) {
00015 TrellisPath *trellisPath = *iterRev;
00016 delete trellisPath;
00017
00018 currSize--;
00019 if (currSize == newSize)
00020 break;
00021 }
00022
00023
00024 CollectionType::iterator iter = m_collection.begin();
00025 for (size_t i = 0 ; i < newSize ; ++i)
00026 iter++;
00027
00028 m_collection.erase(iter, m_collection.end());
00029 }
00030
00031 }
00032
00033