#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;
}

반응형

+ Recent posts