|  | 
|      | 
|  | 
| Introduction and motivationBoost , Chapter 1. Range 2.0 , Range Algorithms
 В своей самой простой форме алгоритм Range Algorithm (или алгоритм на основе диапазона) - это просто алгоритм на основе итера, где аргументы два итератора были заменены аргументами один. Например, мы можем писать #include <boost/range/algorithm.hpp> #include <vector> std::vector<int> vec = ...; boost::sort(vec); вместо std::sort(vec.begin(), vec.end()); Однако возвратный тип алгоритмов диапазона почти всегда отличается от существующих алгоритмов на основе итератора. Одна группа алгоритмов, таких как  boost:unique(boost::sort(vec)); сначала сортировать диапазон, а затем запустить  Алгоритмы, такие как  Поэтому именно уникальные значения могут быть скопированы путем написания boost::copy(boost::unique(boost::sort(vec)), std::ostream_iterator<int>(std::cout)); Алгоритмы, такие как  
 Эта функциональность имеет следующие преимущества: 
 Например, подумайте, как легко мы можем стереть дубликаты в сортированном контейнере: std::vector<int> vec = ...; boost::erase(vec, boost::unique<boost::return_found_end>(boost::sort(vec))); Обратите внимание на использование  // assume 'vec' is already sorted std::vector<int>::iterator i = std::unique(vec.begin(), vec.end()); // remember this check or you get into problems if (i != vec.end()) ++i; vec.erase(i, vec.end()); Одна и та же задача может быть выполнена просто с помощью boost::erase(vec, boost::unique<boost::return_next_end>(vec)); и нет необходимости беспокоиться о создании недействительного диапазона. Кроме того, если контейнер является сложным, звонит  Статья Introduction and motivation раздела Chapter 1. Range 2.0 Range Algorithms может быть полезна для разработчиков на c++ и boost. :: Главная :: Range Algorithms :: 
 | ||||||||||||||||||||||||||
|  ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||||||||||||||||||||||||