void CRectangleOptimizer::StageMerge() { CRectangleOptimizer::iterator it; CRectangleOptimizer::iterator jt; rectangles.sort(); for (it = rectangles.begin(); it != rectangles.end(); ++it) { for (jt = it, ++jt; jt != rectangles.end(); ++jt) { const bool del = HandleMerge(*it, *jt); if (del) { it = rectangles.erase(it); jt = it; } } } }
void CRectangleOptimizer::StageMerge() { CRectangleOptimizer::iterator it; CRectangleOptimizer::iterator jt; #ifdef RO_USE_DEQUE_CONTAINER std::sort(rectangles.begin(), rectangles.end()); #else rectangles.sort(); #endif for (it = rectangles.begin(); it != rectangles.end(); ++it) { for (jt = it, ++jt; jt != rectangles.end(); ++jt) { const bool del = HandleMerge(*it, *jt); if (del) { it = rectangles.erase(it); jt = it; } } } }