벡터(vector)에서 최대, 최소값 (max_element(), min_element() )
#include <algorithm> 에 포함된
*max_element(arr, arr+size)
*min_element(arr, arr+size)
함수를 사용하면 벡터의 최대,최소를 알수 있다.
단 저 함수는 값 자체를 리턴하지않고 주소를 리턴하기 때문에 *를 사용해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector <int> a = { 1,5,4,7,2 };
int min = *min_element(a.begin(), a.end()); // 벡터의 최소
int max = *max_element(a.begin(), a.end()); // 벡터의 최대
cout << "Min : " << min << endl << "Max : " << max;
return 0;
}
|
cs |
주소를 리턴하는 것을 활용하면, 최대나 최소값을 찾아 제거하는 등의 작업을 바로 할수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector <int> a = { 1,5,4,7,2 };
for (int i = 0; i < a.size(); i++) {
cout << a[i] << " ";
}
cout << endl;
a.erase(max_element(a.begin(), a.end()));
for (int i = 0; i < a.size(); i++) {
cout << a[i] << " ";
} // 최대값 제거된 벡터
cout << endl;
a.erase(min_element(a.begin(), a.end()));
for (int i = 0; i < a.size(); i++) {
cout << a[i] << " ";
} // 최소값 제거된 벡터
return 0;
}
|
cs |