nakka soft world !
STL 알고리즘 ( algorithm ) 본문
STL 알고리즘 ( algorithm )
1. 일반 함수
#include <iostream>
#include <vector>
#include <list>
#include <algorithm>
using namespace std;
int main()
{
list<int> s = {1,2,3,4,5,6,7,8,9,10};
vector<int> v = {1,2,3,4,5,6,7,8,9,10};
//s.find(5);
//v.find(5); // 같은 알고리즘을 컨테이너마다 가지고 있어야 하나는 의문으로 멤버 함수로 있지 않고 일반 함수로 있음.
// 핵심 1. 멤버 함수가 아니고 일반함수 이다.
find(s.begin(), s.end(), 5);
find(v.begin(), v.end(), 5);
}
2. 검색 리턴 값
int main()
{
vector<int> v = {1,2,3,4,5,6,7,8,9,10};
vector<int>::iterator p = find(v.begin(), v.end(), 5); // C++11 : auto p = find(v.begin(), v.end(), 5);
cout << *p << endl;
auto p1 = find(v.begin(), v.end(), 15);
if (p1 == v.end())
cout << "검색실패" << endl;
auto p3 = v.begin();
auto ret = find(p3, p3+5, 6); // 검색실패함.
if (ret == p3 + 5)
cout << "검색실패" << endl;
}
3. 뒤집기, 정렬
int main()
{
vector<int> v = {1,2,3,4,5,6,7,8,9,10};
// 뒤집기
reverse(v.begin(), v.end));
// 정렬
sort(v.begin(), v.end());
sort(v.begin(), v.begin+6); // 5 6 7 8 9 10 4 3 2 1
for (auto n : v)
cout << n << endl;
}
'프로그래밍언어 > C++' 카테고리의 다른 글
STL 설계 철학 (0) | 2017.03.19 |
---|---|
알고리즘의 정책 변경 (0) | 2017.03.19 |
반복자 (STL iterator) (0) | 2017.03.19 |
컨테이너 (Container) (0) | 2017.03.19 |
STL (Standard Template Library) (0) | 2017.03.19 |