반응형
#include <algorithm> 에서 지원하는 몇가지 함수들을 알아보자.
for_each(first, last, fn)
- 범위 내(first,last) 원소들을 순차적으로 함수 fn을 실행한다.
- 원소를 수정하지 않는다.
#include <algorithm>
#include <iostream>
#include <vector>
void functionA(int n)
{
cout << ' ' << n;
}
int main()
{
vector<int> myvector;
myvector.push_back(10);
myvector.push_back(20);
myvector.push_back(30);
for_each(myvector.begin(), myvector.end(), functionA);
}
//출력 결과 : 10 20 30
find(first, last, search)
- (first, last) 사이의 search를 선형 검색을 한다.
- last는 검색 대상이 아니다.(itr.end()에 해당하는 마지막요소의 다음 요소)
- 검색 실패시 last를 반환한다.
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
vector<int> container;
for(int i=0; i < 10; ++i)
container.push_back(i);
auto iter = find(container.begin(),container.end(),2);
if(iter == container.end())
cout << "검색 실패" << endl;
}
sort
- first와 last는 임의 접근 반복자(RandomIterator)이다.
- operator<를 이용한 비교 : sort(first, last)
- 함수를 이용한 비교 : sort(first, last, fn)
#include <iostream>
#include <algorithm>
bool compare(int a, int b)
{
return a > b;
//return a < b; 내림차순
}
int main(void)
{
int arr[10] = {3,5,8,7,4,9,6,1,0,2};
sort(arr, arr + 10); //0 1 2 3 4 5 6 7 8 9
sort(arr, arr + 10, compare); //9 8 7 6 5 4 3 2 1 0
}
reverse(first, last)
- 범위 내(first, last)의 원소들의 순서를 거꾸로 뒤집는다.
string str = "asdfevb"
reverse(str.begin()+2, str.end()); //asbvefd
반응형
'C++' 카테고리의 다른 글
[c++] STL vector (0) | 2021.08.19 |
---|---|
[c++] STL Iterator의 종류 (0) | 2021.08.18 |
[c++] STL Container의 종류 (0) | 2021.08.18 |
[c++] STL 이란? (0) | 2021.08.18 |
[c++] 스택(Stack)과 힙(Heap) (0) | 2021.08.16 |