본문 바로가기
프로그래밍/STL

algorithm

by 리뷰하는 (게임)프로그래머_리프TV 2010. 4. 8.




algorithm 해더를 추가하면 신기한 함수들을 사용이 가능한데,
이들은 STL의 컨테이너들을 대상으로 원하는 값을 검사 수행 하는 일들을한다.

간략하게 예제를 살펴 보자.

#include <iostream>
#include <vector>
#include <algorithm>	// 알고리즘에 관련된 해더

void main()
{
	std::vector<int> coll;
	std::vector<int>::iterator pos;

	// 값을 삽입 후에
	coll.push_back(2);
	coll.push_back(5);
	coll.push_back(4);
	coll.push_back(1);
	coll.push_back(6);
	coll.push_back(3);

	// 최소값
	pos = min_element( coll.begin(), coll.end() );
	std::cout << "min : " << *pos << std::endl;
	// 최대값을 찾아서 화면에 출력한다.
	pos = max_element( coll.begin(), coll.end() );
	std::cout << "max : " << *pos << std::endl;

	// coll전체를 정렬 한 후 
	sort( coll.begin(), coll.end() );	// 현재 1 2 3 4 5 6

	// 3의 주소를 pos가 기억
	pos = find( coll.begin(), coll.end(), 3 ); // 1 2 3 4 5 6, pos = 3의 위치

	// 3의 주소 부터, 끝까지 뒤집는다.
	reverse( pos, coll.end() );	// 1 2 3(pos) 4 5 6 -> 1 2 6(pos) 5 4 3 

	// 화면에 출력
	for( pos=coll.begin(); pos!= coll.end(); ++pos )
		std::cout << *pos << ' ';

	std::cout << std::endl;
}
// 결과
// 1 2 6 5 4 3​

'프로그래밍 > STL' 카테고리의 다른 글

함수객체  (0) 2010.04.19
연관 컨테이너 - Set, Map, multiSet, multiMap  (0) 2010.04.08
iterator - 반복자  (0) 2010.04.08
시퀀스 컨테이너 - vector, list, deque  (0) 2010.04.05
용어적 설명.  (0) 2010.04.05