本文整理汇总了C++中std::list::getYoutBegin方法的典型用法代码示例。如果您正苦于以下问题:C++ list::getYoutBegin方法的具体用法?C++ list::getYoutBegin怎么用?C++ list::getYoutBegin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::list
的用法示例。
在下文中一共展示了list::getYoutBegin方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: copyNodeEdges
//Copy edges from first node to second
void Graph::copyNodeEdges(std::list<Node>::iterator pn1, std::list<Node>::iterator pn2)
{
std::list< std::list<Node>::iterator >::iterator pnlist;
for (pnlist = pn1->getXinBegin(); pnlist != pn1->getXinEnd(); pnlist++)
setXedge((*pnlist), pn2);
for (pnlist = pn1->getYinBegin(); pnlist != pn1->getYinEnd(); pnlist++)
setYedge((*pnlist), pn2);
for (pnlist = pn1->getXoutBegin(); pnlist != pn1->getXoutEnd(); pnlist++)
setXedge(pn2, (*pnlist));
for (pnlist = pn1->getYoutBegin(); pnlist != pn1->getYoutEnd(); pnlist++)
setYedge(pn2, (*pnlist));
}
示例2: insertDuplicateNodes
//.........这里部分代码省略.........
plnIter++;
continue;
}
copyNodeEdges(*plnIter, preservedNode);
deleteNodes.push_back(*plnIter);
plnIter++;
}
}
if (pn->getSizeXout() > 1)
{
std::list<Node>::iterator preservedNode = pn->getXout();
int presSumExp = 0;
std::vector<short> presWord = preservedNode->getElemName();
for (int i = 0; i < presWord.size(); i++)
presSumExp += presWord[i];
std::list< std::list<Node>::iterator >::iterator plnIter;
for (plnIter = pn->getXoutBegin(); plnIter != pn->getXoutEnd(); plnIter++)
{
std::vector<short> word = (*plnIter)->getElemName();
int sumExponents = 0;
for (int i = 0; i < word.size(); i++)
sumExponents += word[i];
if (sumExponents == 0)
{
preservedNode = *plnIter;
break;
}
if (sumExponents < presSumExp)
{
preservedNode = *plnIter;
presSumExp = sumExponents;
}
}
plnIter = pn->getXoutBegin();
while (plnIter != pn->getXoutEnd())
{
if ((*plnIter) == preservedNode)
{
plnIter++;
continue;
}
copyNodeEdges(*plnIter, preservedNode);
deleteNodes.push_back(*plnIter);
plnIter++;
}
}
if (pn->getSizeYout() > 1)
{
std::list<Node>::iterator preservedNode = pn->getYout();
int presSumExp = 0;
std::vector<short> presWord = preservedNode->getElemName();
for (int i = 0; i < presWord.size(); i++)
presSumExp += presWord[i];
std::list< std::list<Node>::iterator >::iterator plnIter;
for (plnIter = pn->getYoutBegin(); plnIter != pn->getYoutEnd(); plnIter++)
{
std::vector<short> word = (*plnIter)->getElemName();
int sumExponents = 0;
for (int i = 0; i < word.size(); i++)
sumExponents += word[i];
if (sumExponents == 0)
{
preservedNode = *plnIter;
break;
}
if (sumExponents < presSumExp)
{
preservedNode = *plnIter;
presSumExp = sumExponents;
}
}
plnIter = pn->getYoutBegin();
while (plnIter != pn->getYoutEnd())
{
if ((*plnIter) == preservedNode)
{
plnIter++;
continue;
}
copyNodeEdges(*plnIter, preservedNode);
deleteNodes.push_back(*plnIter);
plnIter++;
}
}
}
示例3: clearDuplicateNodes
//.........这里部分代码省略.........
{
std::list<Node>::iterator preservedNode = pn->getXout();
int presSumExp = 0;
std::vector<short> presWord = preservedNode->getElemName();
for (int i = 0; i < presWord.size(); i++)
presSumExp += presWord[i];
std::list< std::list<Node>::iterator >::iterator plnIter;
for (plnIter = pn->getXoutBegin(); plnIter != pn->getXoutEnd(); plnIter++)
{
std::vector<short> word = (*plnIter)->getElemName();
int sumExponents = 0;
for (int i = 0; i < word.size(); i++)
sumExponents += word[i];
if (sumExponents == 0)
{
preservedNode = *plnIter;
break;
}
if (sumExponents < presSumExp)
{
preservedNode = *plnIter;
presSumExp = sumExponents;
}
}
plnIter = pn->getXoutBegin();
while (plnIter != pn->getXoutEnd())
{
if ((*plnIter) == preservedNode)
{
plnIter++;
continue;
}
std::list< std::list<Node>::iterator >::iterator prevNodeIter = plnIter;
prevNodeIter--;
copyNodeEdges(*plnIter, preservedNode);
removeNode(*plnIter);
plnIter = prevNodeIter;
}
return true;
}
if (pn->getSizeYout() > 1)
{
std::list<Node>::iterator preservedNode = pn->getYout();
int presSumExp = 0;
std::vector<short> presWord = preservedNode->getElemName();
for (int i = 0; i < presWord.size(); i++)
presSumExp += presWord[i];
std::list< std::list<Node>::iterator >::iterator plnIter;
for (plnIter = pn->getYoutBegin(); plnIter != pn->getYoutEnd(); plnIter++)
{
std::vector<short> word = (*plnIter)->getElemName();
int sumExponents = 0;
for (int i = 0; i < word.size(); i++)
sumExponents += word[i];
if (sumExponents == 0)
{
preservedNode = *plnIter;
break;
}
if (sumExponents < presSumExp)
{
preservedNode = *plnIter;
presSumExp = sumExponents;
}
}
plnIter = pn->getYoutBegin();
while (plnIter != pn->getYoutEnd())
{
if ((*plnIter) == preservedNode)
{
plnIter++;
continue;
}
std::list< std::list<Node>::iterator >::iterator prevNodeIter = plnIter;
prevNodeIter--;
copyNodeEdges(*plnIter, preservedNode);
removeNode(*plnIter);
plnIter = prevNodeIter;
}
return true;
}
//no duplicates found if you get to this point
return false;
}