タグ

BoostとAlgorithmに関するItisangoのブックマーク (2)

  • find関数で見るC++の変化 - C++と色々

    STLアルゴリズムはそのアルゴリズムを適用する範囲の先頭と末尾のイテレータのペアを引数に取ります。実際には範囲全体にアルゴリズムを適用させるケースが多く、イテレータのペアを書くのが冗長に感じることがあります。そこでBoost.Rangeには、範囲を引数に渡すことでその範囲全体にSTLアルゴリズムを適用する関数たちがあります。Boost.Rangeのfind関数の実装例を見てC++03/C++11/C++14の比較をしたいと思います。 C++03 まず、範囲なら何でも、コンテナでも組み込み配列でもアルゴリズムに適用できるように、begin関数、end関数を定義します。 namespace ns { //コンテナ版begin/end関数 //非const、constでオーバーロード template <typename Container> typename Container::iterat

    find関数で見るC++の変化 - C++と色々
    Itisango
    Itisango 2013/11/30
    “begin/endが標準入りしたので、自分で作成する必要がなくなりました。さらに、戻り値の型を求めるメタ関数も、C++11で戻り値の後方配置と式から型を求めるdecltypeが入りましたので必要無くなります。”
  • Boost.Geometry 四角形の内外判定 - Faith and Brave - C++で遊ぼう

    Boost.Geometryには、2次元上の点を表現するpoint_xyコンセプトと、左上の点と右下の点のペアとして表現されるboxコンセプトがあり、この2つをwithinアルゴリズムに適用することで、四角形の内外判定が簡単にできます。 #include <iostream> #include <boost/geometry/geometry.hpp> namespace bg = boost::geometry; typedef bg::model::d2::point_xy<double> point_type; typedef bg::model::box<point_type> box_type; int main() { const point_type top_left(0, 0); const point_type bottom_right(3, 3); const box_

    Boost.Geometry 四角形の内外判定 - Faith and Brave - C++で遊ぼう
  • 1