В книге GoF «Шаблоны проектирования» предлагается, чтобы Begin() и end() были методами итератора. В C++ протокол итератора указывает, что Begin() и end() должны быть методами итерируемого объекта.
почему он реализован таким образом? Чтобы вы могли легко написать что-то вроде std::find(a.begin() +3, a.begin() + 4, 5)?
Если бы итераторы в C++ были реализованы, как описано в книге GoF, то на самом деле это были бы диапазоны?
В книге GoF «Шаблоны проектирования» предлагается, чтобы Begin() и end() были методами итератора. В C++ протокол итератора указывает, что Begin() и end() должны быть методами итерируемого объекта. [list] [*]почему он реализован таким образом? Чтобы вы могли легко написать что-то вроде std::find(a.begin() +3, a.begin() + 4, 5)? [*]Если бы итераторы в C++ были реализованы, как описано в книге GoF, то на самом деле это были бы диапазоны? [/list]