250x250
Rainbow🌈Coder
My dev Note📒
Rainbow🌈Coder
전체 방문자
오늘
어제
  • 분류 전체보기 (411)
    • 공지사항 (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • 타입스크립트 TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE 개발환경설정 (3)
      • React와 Node 같이 때려잡기 (6)
      • next.js (2)
      • pixi.js (7)
    • 마크업 (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • 이것이 C#이다 (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(기초) (8)
      • Unity(C#중급) (5)
      • 유니티 포톤(네트워크) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • 스프링 (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • 자료구조와 알고리즘 (15)
      • 자료구조 (5)
      • 알고리즘 (10)
    • 형상관리 (15)
      • Git (11)
      • 소스트리 (3)
    • 그래픽스 (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • 리눅스 (5)
      • 리눅스 (5)
    • 책 리뷰 (13)
      • 클린코드(책리뷰) (3)
      • 유지보수가능한코딩의기술C#편(책리뷰) (1)
      • 리팩토링(자바스크립트판) (9)
    • Server (2)
      • 게임 서버(네트워크, 멀티쓰레드,OS) (2)
    • 설계, 아키텍쳐 (4)
    • 파이썬 (5)
    • 디자인패턴 (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • 인공지능 (1)
      • 혼자공부하는머신러닝+딥러닝 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • MySQL
  • 컴포지션
  • 위임
  • ㅣㄷ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Rainbow🌈Coder

My dev Note📒

C++/c++

[STL] Vector내 최대값, 최소값과 그 인덱스 알아내기

2022. 1. 11. 00:16
728x90

vector 컨테이너에서 최대값, 최소값을 구하기 위해

#include <algorithm>를 써주고

 

max_element(벡터.begin(), 벡터.end())-벡터.begin()

구문을 작성하면 최대값의 인덱스를 구할 수 있다.

max_element의 결과로 최대값을 가리키는 반복자를 반환하기 때문이다.

원리 : (최대값을 가리키는 반복자 - 맨 처음을 가리키는 v.begin())

더불어 * 연산자를 사용하면 최대값을 구할 수 있다.

또한, max_element를 사용하면 최대값의 인덱스 값도 구해낼 수 있다.

최소값과 그 인덱스를 구하기 위해서는 min_element로 바꿔서 사용해주기만 하면 된다.

 

#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;


int main() {
    
    vector<int> v = {5, 8, 2, 4, 5, -5};

    int max = *max_element(v.begin(), v.end());
    int min = *min_element(v.begin(), v.end());

    cout << "최대 : " << max << "\n";
    cout << "최소 : " << min << "\n";

    // 최대, 최소값의 인덱스 구하기
    int max_index = max_element(v.begin(),v.end()) - v.begin();
    int min_index = min_element(v.begin(),v.end()) - v.begin();

    return 0;
}

반복자를 받는 erase와 같이 제법 쓸만하다.

	v.erase(max_element(vec.begin(), vec.end()));

deque에서도 유사하게 이용할 수 있다.

 

728x90

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

[STL] map에서 Value를 기준으로 정렬하고 싶을 경우  (0) 2022.01.15
[STL] map  (0) 2022.01.15
[STL] key 중복가능한 multimap과 make_pair 조합  (0) 2022.01.05
[STL] unordered_map과 make_pair 같이 쓰기  (0) 2022.01.04
[STL] 이중 Vector : 예시 vector<vector<string>>, 코드첨부  (0) 2022.01.04
    'C++/c++' 카테고리의 다른 글
    • [STL] map에서 Value를 기준으로 정렬하고 싶을 경우
    • [STL] map
    • [STL] key 중복가능한 multimap과 make_pair 조합
    • [STL] unordered_map과 make_pair 같이 쓰기
    Rainbow🌈Coder
    Rainbow🌈Coder
    몰라도 결국은 아는 개발자, 그런 사람이 되기 위한 매일의 한걸음

    티스토리툴바