void SG_DeclensionTable::GenerateForms( const Lexem &entry_name, lem::MCollect<Lexem> & res, lem::PtrCollect<CP_Array> & form_dims, const SynGram &sg, const SG_DeclensionAutomat &dsa ) const { res.reserve(form.size()); for( lem::Container::size_type i=0; i<form.size(); i++ ) { UCString frm( dsa.ProduceForm( entry_name, GetClass(), *form[i], sg ) ); res.push_back( frm); form_dims.push_back( new CP_Array( form[i]->GetDim() ) ); } return; }
void SG_DeclensionTable::GenerateForms( const Lexem &entry_name, lem::MCollect<Lexem> &res, const SynGram &sg, const SG_DeclensionAutomat &dsa ) const { res.reserve(form.size()); for( lem::Container::size_type i=0; i<form.size(); i++ ) { UCString frm( dsa.ProduceForm( entry_name, GetClass(), *form[i], sg ) ); // Без повторов if( std::find( res.begin(), res.end(), frm )==res.end() ) res.push_back( frm ); } return; }