이 글에서는 C++ STL에서 제공하는 valarray::max() 함수의 동작 방식, 문법 그리고 실제 활용 예제까지 자세히 살펴보겠습니다.
valarray란 무엇인가?
std::valarray는 값들의 배열을 표현하고 조작하기 위해 사용되는 클래스입니다. 요소 단위(element-wise)의 수학적 연산을 지원하며, 수치 계산에 최적화되어 있어 벡터나 배열 기반의 연산을 간결하게 처리할 수 있습니다.
valarray::max()란 무엇인가?
std::valarray::max() 함수는 C++ STL에 내장된 함수로, <valarray> 헤더 파일에 정의되어 있습니다. 이 함수는 valarray 컨테이너에 저장된 값들 중 최댓값을 반환합니다.
주의할 점은, 만약 valarray가 비어 있는 경우 반환되는 결과는 정의되지 않습니다(unspecified). 따라서 빈 컨테이너에 대해 이 함수를 호출하지 않도록 주의해야 합니다.
문법
V_array_name.max();
매개변수
이 함수는 어떠한 매개변수도 받지 않습니다.
반환값
이 함수는 valarray에 저장된 값들 중 최댓값을 반환합니다.
예제
입력
valarray<int> arr = { 1, 2, 4, 5, 8, 9 };
arr.max();출력
9
예제 1: 최댓값 출력하기
#include <bits/stdc++.h>
using namespace std;
int main(){
valarray<int> arr = {2, 4, 6, 8, 10};
cout<<"Largest element is = "; cout<<arr.max() << endl;
return 0;
}
출력
Largest element is = 10
위 예제에서는 2부터 10까지의 값을 가진 valarray를 생성한 뒤, max() 함수를 호출하여 가장 큰 값인 10을 출력합니다.
예제 2: 최댓값을 활용한 연산
#include <bits/stdc++.h>
using namespace std;
int main(){
valarray<int> arr = {2, 4, 6, 10, 10};
//최댓값의 제곱 구하기
int product = arr.max() * arr.max();
cout<<"Square of greatest number is: "<<product;
return 0;
}
출력
Square of greatest number is: 100
이 예제에서는 max() 함수로 얻은 최댓값(10)을 제곱하여 결과값 100을 출력합니다. 이처럼 max() 함수는 단순히 최댓값을 확인하는 것뿐만 아니라, 다른 연산과 조합하여 다양하게 활용할 수 있습니다.