Поскольку теперь есть общий итератор в стандартной библиотеке C++, например std::begin()
и std::end()
, мне интересно, почему нет способа std::clear()
для очистки контейнера?Почему нет стандартной std :: clear в стандартной библиотеке C++ 11
2
A
ответ
12
Приятная вещь о std::begin/end
заключается в том, что она может быть реализована для массивов. Однако он может быть реализован только как функции области пространства имен для массивов. Поэтому в общем коде неплохо иметь std::begin/end
, чтобы общий код не решал, нужно ли использовать область пространства имен или функции-члены при необходимости begin/end
.
Но я не знаю такой аналогии для std::clear
. Его можно использовать только для контейнеров, которые имеют член clear()
. Нет никакой дилеммы о том, как использовать его в общем коде (по крайней мере, не о том, что я могу придумать).
Смежные вопросы
- 1. Почему в стандартной библиотеке C++ нет функции std :: transform_n?
- 2. std :: strtoul эквивалент в стандартной библиотеке C++?
- 3. sizeof() на стандартной библиотеке C++
- 4. Руководство по стандартной библиотеке C++
- 5. Использование C-строк в стандартной библиотеке C++
- 6. Почему + = действующие временные ряды в стандартной библиотеке?
- 7. boost :: дополнительная альтернатива в стандартной библиотеке C++
- 8. Вперед объявить объекты в стандартной библиотеке C?
- 9. Миграция от Boost к стандартной библиотеке для C++ 11
- 10. Почему нет неизменяемых массивов в стандартной библиотеке scala?
- 11. Почему в стандартной библиотеке Haskell нет функции scanl?
- 12. Актеры в стандартной библиотеке Scala?
- 13. где stdin определяется в стандартной библиотеке c?
- 14. Параметры шаблона шаблона в стандартной библиотеке C++?
- 15. Обнаружение типов в стандартной библиотеке
- 16. Что эквивалентно boost :: make_transform_iterator в стандартной библиотеке?
- 17. std :: iterator_traits для интегральных типов в стандартной библиотеке Microsoft
- 18. System.Converter и String.Intern в стандартной стандартной библиотеке 1.6?
- 19. Существует ли алгоритм подпоследовательности в стандартной библиотеке?
- 20. Конструкторы, принимающие ссылку на rvalue в стандартной библиотеке C++
- 21. Где std :: endl в моей скомпилированной стандартной библиотеке?
- 22. Почему некоторые идентификаторы в стандартной библиотеке C++ коротки?
- 23. Документация по стандартной библиотеке SBCL?
- 24. Почему в стандартной библиотеке есть find и find_if?
- 25. Почему нет ошибки после исключения стандартной библиотеки?
- 26. Есть ли причина, по которой в стандартной библиотеке нет std :: identity?
- 27. Какие жадные примеры списка инициализаторов скрыты в стандартной библиотеке?
- 28. Можно ли исключить исключения, определенные в стандартной библиотеке C++?
- 29. инъективность inl и inr в стандартной библиотеке
- 30. Перезапустимый генератор, доступный в стандартной библиотеке Python?
благодарит за ответ. –
Кроме того, я могу ошибаться в этом, но я чувствую половину причины, по которой им нужны «std :: begin» и «std :: end», поэтому массивы будут работать с диапазоном, основанным на циклах. – aaronman
@aaronman: Фактически диапазон -for был сфальсифицирован так, что он будет работать, даже если '' не был включен. –