示例#1
0
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;
			}
		}
	}
}
示例#2
0
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;
			}
		}
	}
}