min / max
min(a,b): a와 b 중에 제일 작은 수를 반환
max(a,b): a와 b 중에 제일 큰 수를 반환
원래는 (a,b) 안에 2개의 값만 넣을 수 있지만 ({a,b,c,d}) 형식으로 사용하면 여러 값의 크기를 비교할 수 있다.
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
cout<< min(4,2) << '\n'; //2
cout<< max(9,5) << '\n'; //9
cout<< min({1,4,3,6}) << '\n'; //1
cout<< max({7,9,4,10}) << '\n'; //10
}
min_element / max_element
min_element(first, last): first부터 last Iterator 이전까지에서 최솟값을 가리키는 Iterator 반환
max_element(first, last): first부터 last Iterator 이전까지에서 최댓값을 가리키는 Iterator 반환
반복자에 해당하는 값을 출력하고 싶으면 앞에 *를 붙여준다.
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
vector<int>v={3,5,4,8,11};
int arr[]={6,4,8,5};
cout<< *min_element(v.begin(), v.end()) << '\n'; //3
cout<< *max_element(v.begin()+1, v.end()-2) << '\n'; //1~2 인덱스 중에 큰 값=5
cout<< *min_element(arr, arr+4) << '\n'; //4
}
swap
swap(a,b): 두 변수에 저장되어있는 값을 교환
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
int a=4, b=10;
swap(a,b);
cout<< a <<' '<< b << '\n'; //10 4
vector<int>v1(6);
vector<int>v2(3);
swap(v1, v2);
cout<< v1.size() <<' '<< v2.size() << '\n'; //3 6
}
swap_ranges
- 구간을 바꾸는 함수
swap_ranges(first, last, second): 첫번째 배열의 first부터 last Iterator 이전까지의 개수만큼 두번째 배열의 second부터 시작하여 앞의 개수만큼 값을 교환한다.
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int arr1[5] = { 1, 2, 3, 4, 5 };
int arr2[5] = { 6, 7, 8, 9, 10 };
swap_ranges(arr1, arr1 + 3, arr2);
for (int i = 0; i<5; i++)
cout << arr1[i] << ' '; //6 7 8 4 5
cout<<'\n';
for (int i = 0; i<5; i++)
cout << arr2[i] << ' '; //1 2 3 9 10
}
reverse
reverse(first, last): first부터 last Iterator 이전까지 역순으로 뒤집는다.
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
vector<int>v = { 1,5,8,2,10,0 };
reverse(v.begin(), v.end());
for(int i=0;i<v.size();i++)
cout << v[i] << ' '; //{0 10 2 8 5 1}
cout << '\n';
reverse(v.begin() + 1, v.begin() + 4);
for (int i = 0; i<v.size(); i++)
cout << v[i] << ' '; //{0 8 2 10 5 1}
}
fill
fill(first, last, val): first부터 last Iterator 이전까지 val 값으로 채운다.
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
vector<int>v = {1,5,8,2,10,0};
int arr[5]={1,5,7,3,9};
fill(v.begin(), v.begin()+4, -1);
for(int i=0; i<v.size(); i++){
cout<<v[i]<<' '; //{-1 -1 -1 -1 10 0}
}
cout<<'\n';
fill(arr, arr+5, 100);
for(int i=0; i<5; i++){
cout<<arr[i]<<' '; //{100 100 100 100 100}
}
}
'알고리즘 > C++' 카테고리의 다른 글
[알고리즘] 선택 정렬 - C++ (0) | 2021.09.22 |
---|---|
[알고리즘] 버블 정렬 - C++ (0) | 2021.09.22 |
[알고리즘] C++ Vector 사용법 (0) | 2021.09.09 |
[알고리즘] C++ 기본 (0) | 2021.09.09 |
[알고리즘] C++ 스택, 큐, 덱 (0) | 2021.09.08 |
댓글