set/multiset의 max값 wody34 이번 알고스팟 겨울캠프의 기하쪽 문제를 풀고있습니다. G번 City Horizon에서 multiset을 이용하고 있는데 max 구하는 법을 몰라 일일히 돌면서 찾았습니다(-_-;;) 기본적으로 set/multiset은 내부적으로 정렬을 하고 있다고 알고 있고 또 강의때 주신 stl pdf에서 max()라는 함수가 있다고 되어있는데 컴파일러가 없다고 하네요. max값 구하는 방법 좀 알려주세요. 13년 전
5개의 댓글이 있습니다. 김우현 multiset의 rbegin 메소드를 이용한 방법이 있습니다. s에 적어도 하나 이상의 원소가 있다고 가정하겠습니다. multiset s; int max_val = *s.rbegin(); 13년 전 link wody34 감사합니다. 덕분에 시간 많이 줄였어요ㅋㅋ int max_val = *(s.end()-1) 은 안되길래 포기하고 있었어요ㅋㅋ 13년 전 link hyunhwan s.end()-1 과 같은 접근은 set의 iterator가 random access가 불가능한 iterator 이기 때문에 문제가 발생합니다 :) 13년 전 link wookayin rbegin() 이 가장 심플한 방법이구요.. map, set 류들의 iterator는 순회(--, ++)만 가능하고 포인터 덧셈/뺄셈 연산이 안됩니다. 다만 set::iterator it = M.end(); it--; maxValue = *it; 처럼 할수는 있구요... 맵의 연산자를 바꿔주면 begin()으로도 되는데 (예컨대 multiset > S; maxValue = *S.begin(); 처럼) 별로 좋아보이진 않네여 ㅠㅠ 13년 전 link wody34 그렇군요! 답변 모두 감사합니다^^ 13년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
wody34
이번 알고스팟 겨울캠프의 기하쪽 문제를 풀고있습니다. G번 City Horizon에서 multiset을 이용하고 있는데 max 구하는 법을 몰라 일일히 돌면서 찾았습니다(-_-;;) 기본적으로 set/multiset은 내부적으로 정렬을 하고 있다고 알고 있고 또 강의때 주신 stl pdf에서 max()라는 함수가 있다고 되어있는데 컴파일러가 없다고 하네요. max값 구하는 방법 좀 알려주세요.
13년 전