C++ min , max, index 구하기

2022. 8. 21. 14:27STUDY/C++

반응형

HEADER : #include <algorithm>

일일히 for 문을 쓰지않아도, algorithm 라이브러리에 있는 min/max_elements를 사용하여 한 줄로도 간단하게 최대값을 구할 수 있다!

또한 해당 최소/최대 값의 index 값을 구할 수 있다. 이는 결과값에서 - v.begin()을 빼주면 된다.

min/max_element의 결과로, 최대값을 가리키는 반복자를 반환하기 때문에 * 연산자를 사용한다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
vector<int> nums;
 
int main()
{
    nums = {123,213,444,455,666,777,888,1000};
    
    cout << "current vector : ";
    for(int i : nums) cout << i << ' ';
    cout << '\n' << '\n';
    
    int min = *min_element(nums.begin(), nums.end());
    cout << "min val : " << min << '\n';
    int min_idx = min_element(nums.begin(), nums.end()) - nums.begin();
    cout << "min idx : " << min_idx << '\n' << '\n';
    
    int max = *max_element(nums.begin(), nums.end());
    cout << "max val : " << max << '\n';
    
    int max_idx = max_element(nums.begin(), nums.end()) - nums.begin();
    cout << "max idx : " << max_idx << '\n';
}
cs

 

# 결과 

 

 

 

 

728x90
반응형