Я начал использовать контейнеры stl, потому что они очень пригодились, когда мне понадобились функции списка, набора и сопоставления, и в моей среде программирования больше ничего не было доступно. Меня не заботили идеи, стоящие за этим. Документация STL была интересна до того момента, когда она доходила до функций и т. Д. Затем я пропустил чтение и просто использовал контейнеры.
Но вчера, все еще будучи расслабленным от моих каникул, я просто попробовал и хотел пойти немного дальше. Поэтому я использовал функцию преобразования (могу ли я получить немного аплодисментов для меня, спасибо).
С академической точки зрения это действительно выглядело интересно, и это работало. Но меня беспокоит то, что если вы активизируете использование этих функций, вам понадобятся тысячи вспомогательных классов для всего, что вы хотите сделать в своем коде. Вся логика программы нарезана на мелкие кусочки. Эта нарезка не является результатом хороших привычек кодирования; это просто техническая необходимость. Что-то, что делает мою жизнь, вероятно, тяжелее, а не легче.
Я усвоил трудный путь, что вы всегда должны выбирать самый простой подход, который решает проблему под рукой. Я не понимаю, что, например, делает для меня функция for_each, которая оправдывает использование вспомогательного класса в нескольких простых строках кода, которые находятся внутри обычного цикла, чтобы все могли видеть, что происходит.
Я хотел бы знать, что вы думаете о моих проблемах? Видели ли вы это, как я, когда вы начали работать таким образом и изменили свое мнение, когда вы привыкли к этому? Есть ли преимущества, которые я упустил из виду? Или вы просто игнорируете этот материал, как я (и, вероятно, будете продолжать это делать).
Спасибо.
PS: я знаю, что в boost есть настоящий цикл for_each. Но я игнорирую это здесь, так как это просто удобный способ для моих обычных циклов с итераторами.