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


C++ NodePtr::ForEach方法代码示例

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


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

示例1: Search

size_t RegSearch::Search( NodePtr root, 
                          const string& pattern,
                          int depth) 
{
    nodes.clear();
    size_t results = 0;
    try {
        RegPattern thePattern(pattern);
        regPattern = &thePattern;

        root->ForEach([=] ( NodePtr&& node ) -> void {
            this->AddTree(node,depth); });
    } catch ( RegError& e ) {
        SLOG_FROM(LOG_ERROR, "RegSearch::Search",
            "Invalid Regex: " << e.what()) 
        results = 0;
    } 

    /*
     * Now sort the results to the node which 
     * as the most total time spent in it is first
     */
    sort(nodes.begin(), nodes.end(), 
      [=] (const NodePtr& lhs, const NodePtr& rhs) -> bool 
      {
          return lhs->RunTime() > rhs->RunTime();
      });


    // The pointer is invalid once this stack frame
    // has been unwound
    regPattern = nullptr;
    return results;
}
开发者ID:Grauniad,项目名称:Call-Graph-Viewer,代码行数:34,代码来源:nodeSearchCache.cpp

示例2: AddTree

void SearchCache::AddTree(NodePtr& node, int depth) {
    AddNode(node);
    --depth;
    if (depth != -1) {
        node->ForEach([=] ( NodePtr&& node ) -> void {
            this->AddTree(node, depth);
        });
    }
}
开发者ID:Grauniad,项目名称:Call-Graph-Viewer,代码行数:9,代码来源:nodeSearchCache.cpp

示例3: AddNode

void GCGV_ReqGetNodes::SortedNodes::AddTree(
    NodePtr root,
    SORT_BY sort,
    const std::string& filter,
    int depth)
{
    if (root->Name() == filter) {
        AddNode(root,sort);
    }

    --depth;
    if (depth != -1) {
        root->ForEach([=] (NodePtr&& node) -> void {
            this->AddTree(node,sort,filter,depth);
        });
    }
}
开发者ID:Grauniad,项目名称:Call-Graph-Viewer,代码行数:17,代码来源:GCGVReqGetNodes.cpp


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