boost::geometry::detail::as_range使用示例
在使用 Boost.Geometry 库时,有时需要将一些 Range 变量转换成另外的 Range 类型。这时,可以使用 as_range 函数来完成这个操作。as_range函数接收一个参数,通常是一个迭代器,返回一个表示一个范围的 Range 类型变量。
下面是使用 as_range 的一个示例程序:
#include <iostream>
#include <vector>
#include <boost/geometry.hpp>
int main()
{
typedef boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> point_type;
typedef boost::geometry::model::box<point_type> box_type;
// 创建一个点集合
std::vector<point_type> points;
points.push_back(point_type(0, 0));
points.push_back(point_type(1, 1));
points.push_back(point_type(2, 2));
// 使用 as_range 将点集合转换成表示范围的变量
box_type box = boost::geometry::detail::as_range(points);