프로그래밍/Morden C++

std::clamp

MAKGA 2021. 9. 29. 22:22
320x100

clamp란 값을 특정 범위 내에 가둬놓고 싶을 때 사용하는 함수다.

 

예를들어, x의 값을 1부터 10까지 한정짓고 싶다면 보통은

if (x > 10)        x = 10;
else if (x < 1)    x = 1;

이렇게 코딩을 하거나 아니면 커스텀으로 clamp 함수를 만들었을텐데 이젠 C++에서 공식적인 함수로 지원한다. C++17부터 지원하며 <algorithm> 헤더파일을 include하고 사용 한다.

 

#include <algorithm>

int func(int x) {
    return std::clamp(x, 1, 10);
}

int main() {
    int x = 5;
    x = func(x++); // 6
    x = 10;
    x = func(x++); // 10;
    return 0;
}

 

https://en.cppreference.com/w/cpp/algorithm/clamp

 

std::clamp - cppreference.com

template constexpr const T& clamp( const T& v, const T& lo, const T& hi ); (1) (since C++17) template constexpr const T& clamp( const T& v, const T& lo, const T& hi, Compare comp ); (2) (since C++17) 1) If v compares less than lo, returns lo; otherwise if

en.cppreference.com

 

320x100

'프로그래밍 > Morden C++' 카테고리의 다른 글

std::min, std::max 사용시  (0) 2021.10.06
std::map  (0) 2021.10.05
std::accumulate  (0) 2021.09.22
[C++17] std::optional  (0) 2021.07.17
std::splice  (0) 2021.07.13