本文整理汇总了C++中NetworkNode::getReserve方法的典型用法代码示例。如果您正苦于以下问题:C++ NetworkNode::getReserve方法的具体用法?C++ NetworkNode::getReserve怎么用?C++ NetworkNode::getReserve使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NetworkNode
的用法示例。
在下文中一共展示了NetworkNode::getReserve方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findCriticalPaths
void NetworkPlan::findCriticalPaths(NetworkNode* cur) {
// Статическая переменная, инициализируется при первом вызове функции.
// Является счётчиком путей.
static int pathNum = 0;
bool isFirst = true;
NetworkNode* tmpNode = NULL;
const vector<NetworkNode*>* nodes = cur->getOutgoingNodes();
vector<NetworkNode*>::iterator itr;
vector<NetworkNode*>::iterator itr2;
int size = nodes->size();
_critPaths->at(pathNum)->push_back(cur);
for (int i = 0; i < size; i++) {
tmpNode = nodes->at(i);
if (tmpNode->getReserve() == 0) {
if (isFirst) {
findCriticalPaths(tmpNode);
isFirst = false;
} else {
_critPaths->push_back(new vector<NetworkNode*>());
// Получаем итератор на начало текущего пути.
itr = _critPaths->at(pathNum)->begin();
// Находим в пути текущий узел...
itr2 = find(itr, _critPaths->at(pathNum)->end(), cur);
// ... и копируем вершины в новый путь дублирующуюся часть.
while (itr++ != (itr2 + 1)) {
_critPaths->at(pathNum + 1)->push_back(*(itr - 1));
}
pathNum++;
findCriticalPaths(tmpNode);
}
}
}
}