очень хорошо разделить итеративный код от 'базового' беспокойства цикла. Это - почти проектное решение.
Действительно, выполняя итерации индексом связывает Вас с реализацией контейнера. При выяснении у контейнера начальный и конечный итератор, включает код цикла для использования с другими контейнерными типами.
кроме того, в std::for_each
путь, Вы ГОВОРИТЕ набор, что сделать вместо Выяснения это что-то о его внутренностях
, 0x стандарт собирается представить закрытия, которые сделают этот подход намного более простым в использовании - взглянули на выразительное питание, например, Ruby [1..6].each { |i| print i; }
...
, Но возможно проблема, за которой очень наблюдают, - то, что, с помощью for_each
подход приводит к возможности параллелизировать повторение - , Intel, распараллеливающая блоки , может распределить блок кода по количеству процессоров в системе!
Примечание: после обнаружения algorithms
библиотека, и особенно foreach
, я прошел два или три месяца записи смехотворно маленьких структур оператора 'помощника', которые сведут Ваших поддерживающих разработчиков с ума. После этого времени я вернулся к прагматическому подходу - небольшие тела циклов не заслуживают никакого [еще 115]:)
Необходимость считанная ссылка на итераторах является книгой "Расширенный STL" .
GoF имеют крошечный небольшой абзац в конце шаблона Итератора, который говорит об этом виде повторения; это назвало 'внутренний итератор'. Взгляните здесь , также.
msgmerge
помечает строки как нечеткие
, если в старом каталоге есть перевод для строк с похожим на вид msgid
. Он также переносит строки, помеченные как нечеткие из старого каталога в новый.
msgfmt
исключает нечеткие сообщения из скомпилированного каталога, так как переводы, вероятно, неверны. Переводчик должен проверить правильность перевода (в случае, если вы разместили пустую строку, это явно неправильный перевод) и убрать отметку нечеткое
, когда перевод проверяется. Если вы абсолютно хотите использовать нечеткие переводы, передайте `` --use-fuzzy в
msgfmt`.