#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main(){
std::vector<int> vecTest;
vecTest.push_back( 10);
vecTest.push_back( 20);
vecTest.push_back( 30);
vecTest.push_back( 40);
vecTest.push_back( 50);
std::vector<int>::iterator Ite;
//copy( vecTest.begin(),vecTest.end(), ostream_iterator<int>() );
Ite = lower_bound( vecTest.begin(), vecTest.end(), 3);
cout<<*Ite<<endl; // 10출력
Ite = lower_bound( vecTest.begin(), vecTest.end(), 17);
cout<<*Ite<<endl; // 20출력
Ite = lower_bound( vecTest.begin(), vecTest.end(), 20);
cout<<*Ite<<endl; // 20출력
// Ite = lower_bound( vecTest.begin(), vecTest.end(), 53); //vecTest.end() 리턴
// cout<<*Ite<<endl; // 에러발생 - Ite가 vecTest.end() 이라서 예외처리 해줘야한다.
cout<<endl;
Ite = upper_bound( vecTest.begin(), vecTest.end(), 0);
cout<<*Ite<<endl; //10
Ite = upper_bound( vecTest.begin(), vecTest.end(), 10);
cout<<*Ite<<endl; //20
Ite = upper_bound( vecTest.begin(), vecTest.end(), 45);
cout<<*Ite<<endl; //50
Ite = upper_bound( vecTest.begin(), vecTest.end(), 40);
cout<<*Ite<<endl; //50
//Ite = upper_bound( vecTest.begin(), vecTest.end(), 50); //에러아님
//cout<<*Ite<<endl; // 에러 발생
return 0;
}
'STLTemplate > STL & EffectiveSTL' 카테고리의 다른 글
STL bitset 진수 변환 (0) | 2012.11.01 |
---|---|
STL 무한대, numeric_limits::infinity (0) | 2012.11.01 |
반복자 어댑터(Iterator Adaptors) – inserter(), back_inserter(), front_inserter() (0) | 2012.11.01 |
iterator_traits( 반복자 특질 )이란 무엇인가? (0) | 2012.11.01 |
STL 반복자(iterator) (0) | 2012.11.01 |