![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
IntroductionBoost , Chapter 1. Range 2.0 , Chapter 1. Range 2.0
До сих пор общие алгоритмы были определены в терминах двух или более итераторов. Два итератора вместе образуют диапазон значений, на которые может работать алгоритм. Это приводит к очень общему интерфейсу, а также к несколько неуклюжему использованию алгоритмов с избыточной спецификацией имен контейнеров. Поэтому мы хотели бы повысить уровень абстракции для алгоритмов, чтобы они определяли свой интерфейс с точки зрения диапазонов.Насколько это возможно. Наиболее распространенной формой диапазонов, используемых в сообществе C++, являются стандартные библиотечные контейнеры. Однако при написании алгоритмов часто бывает желательно, чтобы алгоритм принимал другие типы, которые предлагают достаточную функциональность для удовлетворения потребностей общего кода., если применяется подходящий слой опосредованности. Например, необработанные массивы часто подходят для использования с общим кодом, который работает с контейнерами, при условии использования подходящего адаптера. Аналогично, нулевые струны могут рассматриваться как контейнеры символов, если они соответствующим образом адаптированы. Таким образом, эта библиотека предоставляет средства для адаптации стандартных контейнеров, нулевых завершенных строк,< Основными преимуществами являются
Example - Iterate over the values in a mapusing namespace boost; using namespace boost::adaptors; for_each( my_map | map_values, fn ); Example - Iterate over the keys in a mapusing namespace boost; using namespace boost::adaptors; for_each( my_map | map_keys, fn );
Example
- Push the even values from a map in reverse order into the container |
Статья Introduction раздела Chapter 1. Range 2.0 Chapter 1. Range 2.0 может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Chapter 1. Range 2.0 ::
реклама |