本文整理汇总了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;
}
示例2: AddTree
void SearchCache::AddTree(NodePtr& node, int depth) {
AddNode(node);
--depth;
if (depth != -1) {
node->ForEach([=] ( NodePtr&& node ) -> void {
this->AddTree(node, depth);
});
}
}
示例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);
});
}
}