본문 바로가기

C++ Programming/STL

STL 알고리즘 개요

ex)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){

vector<int> coll;
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());
cout <<"min: "<<*pos<<endl;
pos = max_element(coll.begin(),coll.end());
cout <<"max: "<<*pos<<endl;
//모든원소들을 정렬한다.
sort(coll.begin(),coll.end());
//값이 3인 컨테이너앞부분부터 찾는다.
pos = find(coll.begin(),coll.end(),3);//범위,값
//3인 객체이후부터 끝까지 순서를 뒤집는다.
reverse(pos,coll.end());

1. 모든 알고리즘은 반- 개방 범위를 가진다.
    ex) max_element(pos25,pos35)
          35가 아닌 34를 찾게 된다. 원하는 결과값을 얻기 위해
          max_element(post25,++pos35)로 작성

2. 다중범위 처리
    copy(coll1.begin(),coll1.end(), //소스
            coll2.begin()); //목적지
    //coll1과 비교되는 coll2의 원소 갯수는 전적으로 coll1의 원소 갯수에 따라 결정된다.

3. 리사이즈(resize) , 사이즈(size)로 초기화는 새로운 객체를 생성한다.
   ex) coll2.resize(coll1.size());