2013-11-25 3 views

ответ

12

Приятная вещь о std::begin/end заключается в том, что она может быть реализована для массивов. Однако он может быть реализован только как функции области пространства имен для массивов. Поэтому в общем коде неплохо иметь std::begin/end, чтобы общий код не решал, нужно ли использовать область пространства имен или функции-члены при необходимости begin/end.

Но я не знаю такой аналогии для std::clear. Его можно использовать только для контейнеров, которые имеют член clear(). Нет никакой дилеммы о том, как использовать его в общем коде (по крайней мере, не о том, что я могу придумать).

+0

благодарит за ответ. –

+0

Кроме того, я могу ошибаться в этом, но я чувствую половину причины, по которой им нужны «std :: begin» и «std :: end», поэтому массивы будут работать с диапазоном, основанным на циклах. – aaronman

+0

@aaronman: Фактически диапазон -for был сфальсифицирован так, что он будет работать, даже если '' не был включен. –

Смежные вопросы