View on GitHub

cp-library

2 次元整数座標のデータ型

C++ 用ライブラリ一覧に戻る

ソースコード

nachia/geometry/veci2.hpp

主な機能

$2$ 次元整数座標を扱うデータ型を提供する。

構造体テンプレート VecI2

テンプレート引数

template<class Int = long long, class Int2 = long long>
struct VecI2;

通常使用する整数型 Int と、乗算結果のための大きい整数型 Int2 を設定できる。

コンストラクタ

VecI2();                      // (1)
VecI2(std::pair<Int, Int> _p) // (2)
VecI2(Int _x, Int _y);        // (3)

基本的な演算子

VecI2& operator+=(VecI2 r);
VecI2& operator-=(VecI2 r);
VecI2& operator*=(Int r);
VecI2 operator+(VecI2 r) const;
VecI2 operator-(VecI2 r) const;
VecI2 operator*(Int r) const;
VecI2 operator-() const;

加減算と定数倍。

内積

Int2 operator*(VecI2 r) const;  // (1)
Int2 norm() const;              // (2)

行列式

Int2 operator^(VecI2 r);

this を $(x _ 1,y _ 1)$ 、 r を $(x _ 2,y _ 2)$ とするとき、 $x _ 1y _2-x _ 2y _ 1$ の値を計算して返す。

辞書順比較

static bool compareYX(VecI2 a, VecI2 b); // (1)
static bool compareXY(VecI2 a, VecI2 b); // (2)
bool operator<(VecI2 r) const;           // (3)

TOP PAGE