当前位置: 首页>>代码示例>>C++>>正文


C++ yvector::clear方法代码示例

本文整理汇总了C++中yvector::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ yvector::clear方法的具体用法?C++ yvector::clear怎么用?C++ yvector::clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在yvector的用法示例。


在下文中一共展示了yvector::clear方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: GetOccurrences

void CTrieHolder::GetOccurrences (const TerminalString& Text, yvector< COccurrence >& Occurrences) const
{
    int r = 0;
    Occurrences.clear();
    for (size_t i=0; i<Text.size(); i++) {
        r = NextState(r, i, Text[i], Occurrences);
    };
};
开发者ID:Frankie-666,项目名称:tomita-parser,代码行数:8,代码来源:ahokorasick.cpp

示例2: BuildRuleInfo

static void BuildRuleInfo(const yset<CWorkRule>& rules, yvector<CGLRRuleInfo>& res)
{
    res.clear();
    for (yset<CWorkRule>::const_iterator it = rules.begin(); it != rules.end(); ++it) {
        res.push_back();
        res.back().Init(&*it);
    }
    std::sort(res.begin(), res.end());
}
开发者ID:Frankie-666,项目名称:tomita-parser,代码行数:9,代码来源:glrtable.cpp

示例3: CollectFiles

void TMixedDescriptorPool::CollectFiles(yvector<const TFileDescriptor*>& files) {
    files.clear();
    const yset<Stroka>& fileNames = Database.RequestedFiles();
    for (yset<Stroka>::const_iterator it = fileNames.begin(); it != fileNames.end(); ++it) {
        const TFileDescriptor* fd = FindFileByName(*it);
        if (fd)
            files.push_back(fd);
    }
}
开发者ID:Frankie-666,项目名称:tomita-parser,代码行数:9,代码来源:builtin.cpp

示例4: consumer

static inline void CustomSplit(const TStringBuf& str, char sep, yvector<TStringBuf>& result)
{
    result.clear();

    typedef TContainerConsumer< yvector<TStringBuf> > TConsumer;
    TConsumer consumer(&result);
    TSkipEmptyTokens<TConsumer> filter(&consumer);
    SplitString(str.data(), str.data() + str.size(), TCharDelimiter<const char>(sep), filter);
}
开发者ID:Frankie-666,项目名称:tomita-parser,代码行数:9,代码来源:surname_predictor.cpp

示例5: GetFoundWordsInPeriod

void CMultiWordCreator::GetFoundWordsInPeriod(const SArtPointer& artP, yvector<SWordHomonymNum>& foundWords,
                                              const CWordsPair& wp) const
{
    foundWords.clear();

    //сначала пытаемся найти среди KwType, которые уже искались на всем предложении, те, которые
    //входят в наш отрезок

    if (artP.HasKWType()) {
        ymap<TKeyWordType, yvector<SWordHomonymNum> >::const_iterator it = m_KW2Words.find(artP.GetKWType());
        if (it != m_KW2Words.end()) {
            const yvector<SWordHomonymNum>& whs = it->second;
            for (size_t i = 0; i < whs.size(); i++) {
                CWord& w = m_Words.GetWord(whs[i]);
                if (wp.Includes(w.GetSourcePair()))
                    foundWords.push_back(whs[i]);
            }
        }
    }

    if (!foundWords.empty())
        return;

    //пытаемся найти среди StrType, которые уже искались на всем предложении, те, которые
    //входят в наш отрезок
    if (artP.HasStrType()) {
        ymap<Wtroka, yvector<SWordHomonymNum> >::const_iterator it = m_Title2Words.find(artP.GetStrType());
        if (it != m_Title2Words.end()) {
            const yvector<SWordHomonymNum>& whs = it->second;
            for (size_t i = 0; i < whs.size(); ++i) {
                CWord& w = m_Words.GetWord(whs[i]);
                if (wp.Includes(w.GetSourcePair()))
                    foundWords.push_back(whs[i]);
            }
        }
    }

    if (!foundWords.empty())
        return;

    //теперь проходим по запомненным отрезкам, для которых хранятся все найденные MultiWords
    ymap<CWordsPair, yvector<SWordHomonymNum> >::const_iterator it = m_FoundWordsByPeriod.find(wp);
    if (it != m_FoundWordsByPeriod.end()) {
        const yvector<SWordHomonymNum>& whs = it->second;
        for (size_t i = 0; i < whs.size(); i++) {
            const CHomonym& h = m_Words[whs[i]];
            if (h.HasArticle(artP, KW_DICT))
                foundWords.push_back(whs[i]);
        }
    }
}
开发者ID:dubrousky,项目名称:tomita-parser,代码行数:51,代码来源:multiwordcreator.cpp

示例6: FindRightQuoteIfHas

// обычно функция возвращает clause->ToString(),
// если в клаузе есть открывающая кавычка, а нет закрывающей, тогда  функция добавляет к результату
// все слова до закрывающей кавычки
Wtroka CQuotesFinder::FindRightQuoteIfHas(const CWordsPair& PeriodToPrint, int SentNo,
                                          const CWordsPair& GroupToExclude, yvector<SFactAddress>& FioInQuotes)
{
    FioInQuotes.clear();
    CSentenceRusProcessor* pSentPrc = GetSentPrc(SentNo);
    yset<int> QuoteWords;
    Wtroka ClauseStr;
    static const Wtroka COMMA = Wtroka::FromAscii(",");
    for (int i = PeriodToPrint.FirstWord(); i <=  PeriodToPrint.LastWord(); i++) {
        const CWord& w = pSentPrc->m_Words.GetOriginalWord(i);
        if (!GroupToExclude.Contains(i) &&
            !(GroupToExclude.Contains(i - 1) && w.GetText() == COMMA) &&
            !(GroupToExclude.Contains(i + 1) && w.GetText() == COMMA)) {
            ClauseStr += w.GetOriginalText() + ' ';
            QuoteWords.insert(i);
        }
    }

    size_t index = ClauseStr.find('"');
    if (index != Wtroka::npos && ClauseStr.rfind('"') == index) {
        yset<int> AddQuoteWords;
        Wtroka Add;
        // если только одна кавычка, то пойдем искать вторую кавычку
        int i;
        for (i = PeriodToPrint.LastWord()+1; i < (int)pSentPrc->getWordsCount(); i++) {
            const CWord& w = pSentPrc->m_Words.GetOriginalWord(i);
            if (!GroupToExclude.Contains(i)) {
                Add += w.GetOriginalText() + ' ';
                AddQuoteWords.insert(i);
            }
            if (w.HasCloseQuote())
                break;
        }
        if (i != (int)pSentPrc->getWordsCount()) {
            ClauseStr += ' ';
            ClauseStr += Add;
            QuoteWords.insert(AddQuoteWords.begin(), AddQuoteWords.end());
        }

    }

    AddFios(SentNo, QuoteWords, FioInQuotes);

    return ClauseStr;
};
开发者ID:Frankie-666,项目名称:tomita-parser,代码行数:48,代码来源:quotesfinder.cpp

示例7: IsAnalyticalVerbForm

//check an agreement between aux. verbs and predicates of analitical form.
bool CAnalyticFormBuilder::IsAnalyticalVerbForm(int iVerbWrd, int iSWrd, int& VerbHomNo,
                                                yvector<int>& AnalyticHom, bool& b_AddAuxVerbHom)
{
    b_AddAuxVerbHom = false;
    AnalyticHom.clear();

    const CWord& _Be = m_Words.GetWord(m_ClauseWords.at(iVerbWrd));
    const CWord& _Predik = m_Words.GetWord(m_ClauseWords.at(iSWrd));

    //с предикативными значениями "много" и "мало" анал. форм не строить : DIALING
    //с предикативными значениями "много" и "мало" анал. форм строится, но клонируется омоним для вспомогательного глагола
    //if ( ( m_Words[iSWrd].FindLemma("МНОГО") || m_Words[iSWrd].FindLemma("МАЛО") ) && ... )
    if (_Predik.HasPOS(gNumeral) && _Predik.HasPOS(gPraedic))
            b_AddAuxVerbHom = true;

    //14.07.04: отсутствие синтаксиса порождает заплатку:
    //если у потенциального предиката есть омоним Noun, то добавить омоним AuxVerb для вспомогательного глагола,
    //в противном случае, просто изменить часть речи на AuxVerb.
    if (_Predik.HasMorphNoun())
        b_AddAuxVerbHom = true;

    //masks used later (to avoid constructing them repeatedly in loop)
    const TGramBitSet Verb_Infinitive(gVerb, gInfinitive),
                      Infinitive_Imperfect(gInfinitive, gImperfect),
                      Person3_Singular(gPerson3, gSingular),
                      Infinitive_Gerund(gInfinitive, gGerund);

    for (CWord::SHomIt it = _Be.IterHomonyms(); it.Ok(); ++it) {
        VerbHomNo = it.GetID();
        const CHomonym& VerbHom = _Be.GetRusHomonym(VerbHomNo);

        if (VerbHom.Lemma == kByt || (VerbHom.Lemma == kStat && VerbHom.HasAnyOfPOS(Verb_Infinitive))) {
            for (CWord::SHomIt it_predik = _Predik.IterHomonyms(); it_predik.Ok(); ++it_predik) {
                int j = it_predik.GetID();

                const CHomonym& ShortFormHom = _Predik.GetRusHomonym(j);
                if (ShortFormHom.Grammems.HasAll(Infinitive_Imperfect) && (VerbHom.IsFutureTense() || VerbHom.Lemma == kStat))
                    AnalyticHom.push_back(j);

                else if ((ShortFormHom.HasGrammem(gPraedic)) &&
                         (VerbHom.HasGrammem(gNeuter) || (VerbHom.IsFutureTense() && VerbHom.Grammems.HasAll(Person3_Singular))))
                    AnalyticHom.push_back(j);

                else if (ShortFormHom.HasGrammem(gComparative) && ShortFormHom.IsFullAdjective())
                    AnalyticHom.push_back(j);

                else if (ShortFormHom.IsShortAdjectiveOrParticiple()) {
                    // "была", "стал", "был", "было" ...
                    if ((VerbHom.HasGrammem(gSingular) && VerbHom.IsPastTense() &&
                         ShortFormHom.HasGrammem(gSingular) &&
                         (VerbHom.Grammems.All() & ShortFormHom.Grammems.All()).HasAny(NSpike::AllGenders))
                        || (VerbHom.HasGrammem(gPlural) && ShortFormHom.HasGrammem(gPlural))
                        || (!VerbHom.IsPastTense() && VerbHom.HasGrammem(gSingular) && ShortFormHom.HasGrammem(gSingular))
                        || VerbHom.Grammems.HasAny(Infinitive_Gerund))

                        AnalyticHom.push_back(j);
                }
            }
            return AnalyticHom.size() > 0;
        }
    }
    return false;
}
开发者ID:Frankie-666,项目名称:tomita-parser,代码行数:64,代码来源:analyticformbuilder.cpp


注:本文中的yvector::clear方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。