Programming/C | C++

[C++] vector 최댓값, 최솟값, 인덱스 구하기

꾸준희 2021. 6. 18. 11:51
728x90
반응형

 

 

vector 컨테이너에서 최대값, 최소값을 구할 경우 for문을 작성할 수도 있지만, 복잡하기 때문에 algorithm 라이브러리의 있는 max_element를 사용하여 한줄로도 간단하게 최대값을 구할 수 있다.


또한, max_element를 사용하면 최대값의 인덱스 값을 구할 수 있으며, 최소값을 구하기 위해서는 min_element를 사용한다.

 

max_element의 결과로 최대값을 가리키는 반복자를 반환하기 때문에 이를 * 연산자를 사용하면 최대값을 구할 수 있다. 또한, vector는 일련의 반복자로 구성되어 있으므로 최대값을 가리키는 반복자를 맨 처음을 가리키는 v.begin()만큼 빼준다면 인덱스 값을 구할 수 있다.

 

vector와 유사한 구조인 deque에서도 동일하게 이용할 수 있다.
 

#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

int main() {
    vector<int> v;
    v.push_back(1);
    v.push_back(5);
    v.push_back(100);
    
    cout << "current vector : ";
    for (int i : v) cout << i << " ";
    cout << "\n==============================\n";

    int max = *max_element(v.begin(), v.end());
    cout << "max value : " << max << "\n";
    
    int max_index = max_element(v.begin(), v.end()) - v.begin();
    cout << "max value index : " << max_index;
    cout << "\n==============================\n";


    int min = *min_element(v.begin(), v.end());
    cout << "min value : " << min << "\n";

    int min_index = min_element(v.begin(), v.end()) - v.begin();
    cout << "min value index : " << min_index << "\n\n";

    return 0;
}

 

 

 

참고자료 : https://notepad96.tistory.com/entry/C-Vector-%EC%B5%9C%EB%8C%80%EA%B0%92-%EC%B5%9C%EC%86%8C%EA%B0%92-%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EA%B5%AC%ED%95%98%EA%B8%B0

 

C++ Vector 최대값, 최소값, 인덱스 구하기

  1. 최대값, 최소값 vector 컨테이너에서 최대값, 최소값을 구할 경우 for문을 작성할 수도 있지만 이는 복잡하다. 그래서 algorithm 라이브러리의 있는 max_element를 사용한다면 한줄로도 간단하게 최

notepad96.tistory.com

 

728x90
반응형

'Programming > C | C++' 카테고리의 다른 글

[C++] vector 최댓값, 최솟값, 인덱스 구하기  (0) 2021.06.18
[C++] 파일 분할 작성  (0) 2018.11.26
[C] assert 매크로  (0) 2018.11.26
[C++] goto 문  (0) 2018.09.07
[C++] 조건부 연산자  (0) 2018.09.06
[C, C++] 메모리 함수 memset, memmove, memcpy, memcmp, memchr  (0) 2018.09.05