C++ Vector 최대값, 최소값, 인덱스 구하기
Notepad96
·2020. 11. 12. 14:03
300x250
1. 최대값, 최소값
vector 컨테이너에서 최대값, 최소값을 구할 경우 for문을 작성할 수도 있지만 이는 복잡하다.
그래서 algorithm 라이브러리의 있는 max_element를 사용한다면 한줄로도 간단하게 최대값을 구할 수 있다.
또한, max_element를 사용하면 최대값의 인덱스 값도 구해낼 수 있다.
최소값을 구하기 위해서는 min_element를 사용한다.
2. 코 드
환경 : Visual studio 2019
#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 (int i : v) cout << i << " ";
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;
}
- max_element의 결과로 최대값을 가리키는 반복자를 반환한다. 따라서 이를 * 연산자를 사용하면 최대값을 구할 수 있다.
또한, vector는 일련의 반복자로 구성되어 있으므로 최대값을 가리키는 반복자를 맨 처음을 가리키는 v.begin()만큼 빼준다면 인덱스 값을 구할 수 있다.
- vector와 유사한 구조인 deque에서도 동일하게 이용할 수 있다.
3. 참 조
300x250
'C++ > STL' 카테고리의 다른 글
C++ 원소 개수 구하기 Count (0) | 2020.11.13 |
---|---|
C++ Vector 값 탐색 find - 존재 유무 확인 (0) | 2020.11.12 |
C++ 조합(Combination) - next_permutation (1) | 2020.11.12 |
C++ 순열(Permutation) - next_permutation (0) | 2020.11.11 |
C++ vector 정렬(sort) - 오름차순, 내림차순 (0) | 2020.11.10 |