// algo/lexico1.cpp #include "algostuff.hpp" using namespace std; void printCollection (const list& l) { PRINT_ELEMENTS(l); } bool lessForCollection (const list& l1, const list& l2) { return lexicographical_compare (l1.begin(), l1.end(), // Первый интервал l2.begin(), l2.end()); // Второй интервал } int main() { list c1, c2, c3, c4; // Заполнение коллекций одинаковыми исходными данными INSERT_ELEMENTS(c1,1,5); c4 = c3 = c2 = c1; // Внесение различий c1.push_back(7); c3.push_back(2); c3.push_back(0); c4.push_back(2); // Создание "коллекции коллекций" vector > cc; cc.push_back(c1); cc.push_back(c2); cc.push_back(c3); cc.push_back(c4); cc.push_back(c3); cc.push_back(c1); cc.push_back(c4); cc.push_back(c2); // Вывод всех коллекций for_each (cc.begin(), cc.end(), printCollection); cout << endl; // Лексикографическая сортировка коллекции sort (cc.begin(), cc.end(), // Интервал lessForCollection); // Критерий сортировки // Повторный вывод коллекций for_each (cc.begin(), cc.end(), printCollection); }