Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost.Range filtered

Boost , Chapter 1. Geometry , Boost.Range

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Повышаю. Адаптер диапазона фильтрованного диапазона адаптирован к Boost. Геометрия

Description

Повышаю. Адаптер диапазона фильтруется диапазоном.

Model of

Начало. Адаптер диапазона фильтрованного диапазона берет на себя модель исходной геометрии, которая может быть:

  • прямая линия
  • кольцо
  • многоточечный
  • Multi_linestring
  • Многопользовательский
Header

#include <boost/geometry/geometries/adapted/boost_range/filtered.hpp>

Стандартный заголовок<boost/geometry.hpp>не включает этот заголовок.

Example

Показывает, как использовать буст. Геометрия линейная, фильтруется Boost. Адаптер диапазона

#include <iostream>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/linestring.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/adapted/boost_range/filtered.hpp>
struct not_two
{
    template <typename P>
    bool operator()(P const& p) const
    {
        return boost::geometry::get<1>(p) != 2;
    }
};
int main()
{
    typedef boost::geometry::model::d2::point_xy<int> xy;
    boost::geometry::model::linestring<xy> line;
    line.push_back(xy(0, 0));
    line.push_back(xy(1, 1));
    line.push_back(xy(2, 2));
    line.push_back(xy(3, 1));
    line.push_back(xy(4, 0));
    line.push_back(xy(5, 1));
    line.push_back(xy(6, 2));
    line.push_back(xy(7, 1));
    line.push_back(xy(8, 0));
    using boost::adaptors::filtered;
    std::cout
        << boost::geometry::length(line) << std::endl
        << boost::geometry::length(line | filtered(not_two())) << std::endl
        << boost::geometry::dsv(line | filtered(not_two())) << std::endl;
    return 0;
}

Результат:

11.3137
9.65685
((0, 0), (1, 1), (3, 1), (4, 0), (5, 1), (7, 1), (8, 0))

PrevUpHomeNext

Статья Boost.Range filtered раздела Chapter 1. Geometry Boost.Range может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Boost.Range ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:58:22/0.0062689781188965/0