intersection
関数 · 区間演算
// (1)
template <std::integral T>
std::optional<std::pair<T, T>> intersection(T l1, T r1, T l2, T r2);
// (2)
template <std::integral T>
std::optional<std::pair<T, T>> intersection(std::pair<T, T> a, std::pair<T, T> b);
概要
2つの半開区間の共通部分を返し、交差しなければ std::nullopt を返す
計算量
- $O(1)$
関連項目
is_nested— 2つの半開区間が入れ子(一方が他方を包含する)であれば true を返すis_intersecting— 2つの半開区間が交差していれば true を返すis_disjoint— 2つの半開区間が交差しなければ true を返すis_nested— 2つの閉区間が入れ子(一方が他方を包含する)であれば true を返すis_intersecting— 2つの閉区間が交差していれば true を返すintersection— 2つの閉区間の共通部分を返し、交差しなければ std::nullopt を返すis_disjoint— 2つの閉区間が交差しなければ true を返す