Какая часть стандартной библиотеки STL наиболее употребима программистами C++? Скорее всего - это контейнеры.

Контейнеры имеют много специализированных методов, которым отдается предпочтение перед алгоритмами из STL. Эти методы "знают" внутреннее устройство контейнера и поэтому работают более эффективно, чем алгоритмы. 

Но как часто мы прибегаем к алгоритмам из стандартной библиотеки STL? Для решения какой-либо задачи многие из нас, не задумываясь, напишут нетривиальный вложенный цикл в стиле C, чем попробуют подыскать алгоритм, который сделает всё тоже самое. 

Мы воспринимаем каждый отдельный алгоритм, как некую законченную функциональность. Если она нам подходит, мы применяем алгоритм. Однако, правильнее было бы воспринимать алгоритмы как "небольшие строительный блоки", которые можно и нужно комбинировать между собой для решения задачи. Тогда возможности алгоритмов существенно расширяются.

В данной статье мы попытаемся применить некоторые алгоритмы из STL для решения задачи сортировки. При этом будем стараться как можно меньше использовать циклы. Да и вообще, постараемся как можно меньше писать кода. Сами алгоритмы сортировки подробно рассматриваться не будут. Нам нужна лишь интересная постановка задачи, чтобы продемонстрировать её решение с помощью алгоритмов STL. К тому же, Вы всегда сможете найти альтернативные решения (без алгоритмов из STL), и сравнить их с предложенными в статье.