반응형
    
    
    
  #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 |