パープルハット

※当サイトではGoogleアドセンス広告を利用しています

C++ 値を指定範囲に収める(clamp)



std::clampとは?

  • 指定した変数を指定範囲内に収めることができます。
  • これにより、if文やmin・maxの組み合わせで実現した範囲内に収める処理を1行で記述できます。
  • 参考サイト:clamp - cpprefjp C++日本語リファレンス



使用例1:変数をaを範囲min ~ maxに収める

  • 今回使用するstd::clampの引数を以下の表に示す。
第1引数 制限したい変数
第2引数 最小値
第3引数 最大値

ソースコード

#include <iostream>
#include <algorithm>

int main() {

    // 総和を求める
    for (int i = 0; i < 7; i++)
    {
        std::cout << "std::clamp( " << i << ", 2, 5) = " <<
            std::clamp(i, 2, 5) << std::endl;
    }
}


実行結果

std::clamp( 0, 2, 5) = 2
std::clamp( 1, 2, 5) = 2
std::clamp( 2, 2, 5) = 2
std::clamp( 3, 2, 5) = 3
std::clamp( 4, 2, 5) = 4
std::clamp( 5, 2, 5) = 5
std::clamp( 6, 2, 5) = 5