j
k
j a
j l
"Peter Foelsche" wrote in message news:iv8fap$5ju$1@dough.gmane.org... something was missing:
std::list sort(std::list _sList) { std::set sSet; std::list sSorted; while (_sList.size()) for (std::list::iterator p = _sList.begin(), pNext = p, pEnd = _sList.end(); p != pEnd; p = pNext) { ++pNext; bool bFound = false; for (std::set::const_iterator p1 = (*p)->m_sPredecessors.begin(), p1End = (*p)->m_sPredecessors.end(); p1 != p1End; ++p1) if (sSet.find(*p1) == sSet.end()) { bFound = true; break; } if (!bFound) { sSorted.push_back(*p); sSet.insert(*p); _sList.erase(p); } } return sSorted; }
Back to the thread
Back to the list