Шрифт:
Я привел эту задачу по двум причинам. Во-первых, она напоминает вам о существовании очень удобной функции
Во-вторых, эта задача показывает, почему интервальные функции лучше своих одноэлементных аналогов. Интервальной называется функция контейнера, которая, подобно алгоритмам STL, определяет интервал элементов для выполняемой операции при помощи двух параметров-итераторов. Без интервальной функции нам пришлось бы создавать специальный цикл:
В совете 43 подробно объясняется, почему использовать явные циклы не рекомендуется, но и без этого ясно, что написание этого фрагмента потребует больше усилий, чем простой вызов
Одно из возможных решений заключается в том, чтобы последовать совету 43 и воспользоваться алгоритмом:
Но и этот вариант требует больших усилий, чем простой вызов
Команда получается ненамного короче, но она к тому же ясно указывает на суть происходящего: данные вставляются в
Многие программисты STL злоупотребляют функцией
Вернемся к примеру с
• Написание кода с интервальными функциями обычно требует меньших усилий.
• Решения с интервальными функциями обычно выглядят более наглядно и логично.
Короче говоря, программы с интервальными функциями удобнее как писать, так и читать. О чем тут еще говорить?
Впрочем, некоторые склонны относить эти аргументы к стилю программирования, а вопросы стиля вызывают у программистов такую же жаркую полемику, как и тема выбора Лучшего В Мире Редактора (хотя о чем тут спорить? Всем известно, что это
Предположим, вы хотите скопировать массив