반응형
→vector 컨테이너에서 최대값, 최소값을 구할 경우 for문을 작성할 수도 있지만 이는 복잡하다.
그래서 algorithm 라이브러리에 있는 max_element를 사용한다면 한줄로도 간단하게 최대값을 구할 수 있다.
- 또한 max_element를 사용하면 최대값의 인덱스 값도 구해낼 수 있다.
- 최소값을 구하기 위해서는 min_element를 사용한다.
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
vector<int> v;
v.push_back(46);
v.push_back(68);
v.push_back(184);
v.push_back(4);
v.push_back(17);
v.push_back(53);
cout << "현재 vector : ";
for (std::vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
{
std::cout << "*data : " << *iter << "\\n";
}
cout << "\\n==============================\\n";
int max = *max_element(v.begin(), v.end());
cout << "가장 큰 수 : " << max << "\\n";
int max_index = max_element(v.begin(), v.end()) - v.begin();
cout << "가장 큰 수의 인덱스 : " << max_index;
cout << "\\n==============================\\n";
int min = *min_element(v.begin(), v.end());
cout << "가장 작은 수 : " << min << "\\n";
int min_index = min_element(v.begin(), v.end()) - v.begin();
cout << "가장 작은 수의 인덱스 : " << min_index << "\\n\\n";
return 0;
}
결과
현재 vector : *data : 46
*data : 68
*data : 184
*data : 4
*data : 17
*data : 53
==============================
가장 큰 수 : 184
가장 큰 수의 인덱스 : 2
==============================
가장 작은 수 : 4
가장 작은 수의 인덱스 : 3
- *max_element, *min_element는 값을 구해온다. 그냥 max_element, min_element는 iterator를 반환한다.
- vector는 일련의 반복자로 구성되어 있으므로 최대값을 가리키는 반복자를 맨 처음을 가리키는 v.begin()만큼 빼준다면 인덱스값을 구할 수 있다.
C++ max_element, min_element 사용법(최댓값,최솟값)
반응형
'C++ > C++ STL 라이브러리' 카테고리의 다른 글
find (0) | 2024.02.09 |
---|