本文整理汇总了C++中NodeType::addVisibleDependencies方法的典型用法代码示例。如果您正苦于以下问题:C++ NodeType::addVisibleDependencies方法的具体用法?C++ NodeType::addVisibleDependencies怎么用?C++ NodeType::addVisibleDependencies使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NodeType
的用法示例。
在下文中一共展示了NodeType::addVisibleDependencies方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: visibleNetwork
NodeType* visibleNetwork(Algorithm* algo) {
stack<NodeType*> toVisit;
set<NodeType*> visited;
map<Algorithm*, NodeType*> algoNodeMap;
NodeType* networkRoot = new NodeType(algo);
toVisit.push(networkRoot);
E_DEBUG(ENetwork, "building visible network from " << algo->name());
E_DEBUG_INDENT;
while (!toVisit.empty()) {
NodeType* currentNode = toVisit.top();
toVisit.pop();
//E_DEBUG(ENetwork, "visiting: " << currentNode->algorithm()->name());
if (visited.find(currentNode) != visited.end()) continue;
visited.insert(currentNode);
vector<NodeType*> deps = currentNode->addVisibleDependencies(algoNodeMap);
E_DEBUG(ENetwork, currentNode->algorithm()->name() << ":");
for (int i=0; i<(int)deps.size(); i++) {
E_DEBUG(ENetwork, " → " << deps[i]->algorithm()->name());
toVisit.push(deps[i]);
}
}
E_DEBUG_OUTDENT;
E_DEBUG(ENetwork, "building visible network from " << algo->name() << " ok!");
return networkRoot;
}