В книге 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]