<script type="syntaxhighlighter" class="brush:cpp;"><![CDATA[
#include <iostream>
#include <cassert>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
cout<< "Illustrating the generic binary search algorithms."<< endl;
vector<int> v(5);
bool found;
// 초기화
int i;
for (i=0; i< 5; ++i) v[i] = i;
// 정수 0, 1, 2, 3, 4를 각각 검색
for (i=0; i< 5; ++i)
{
found = binary_search(v.begin(), v.end(), i);
assert (found == true);
}
// v에 담겨있지 않는 값을 검색
found = binary_search(v.begin(), v.end(), 9);
assert(found == false);
v[1] = 7; v[2] = 7; v[3] = 7; v[4] = 8;
// 벡터 v에는 0 7 7 7 8이 담겨 있다.
// v에 upper_bound, lower_bound, equal_range를 적용
vector<int>::iterator k;
k = lower_bound(v.begin(), v.end(), 7);
assert (k == v.begin()+1 && *k == 7);
k = upper_bound(v.begin(), v.end(), 7);
assert (k == v.end()-1 && *k == 8);
pair< vector<int>::iterator, vector<int>::iterator > pi =
equal_range(v.begin(), v.end(), 7);
assert (pi.first == v.begin() + 1);
assert (pi.second == v.end() - 1);
cout<< " --- Ok."<< endl;
return 0;
}
]]></script>
#include <iostream>
#include <cassert>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
cout<< "Illustrating the generic binary search algorithms."<< endl;
vector<int> v(5);
bool found;
// 초기화
int i;
for (i=0; i< 5; ++i) v[i] = i;
// 정수 0, 1, 2, 3, 4를 각각 검색
for (i=0; i< 5; ++i)
{
found = binary_search(v.begin(), v.end(), i);
assert (found == true);
}
// v에 담겨있지 않는 값을 검색
found = binary_search(v.begin(), v.end(), 9);
assert(found == false);
v[1] = 7; v[2] = 7; v[3] = 7; v[4] = 8;
// 벡터 v에는 0 7 7 7 8이 담겨 있다.
// v에 upper_bound, lower_bound, equal_range를 적용
vector<int>::iterator k;
k = lower_bound(v.begin(), v.end(), 7);
assert (k == v.begin()+1 && *k == 7);
k = upper_bound(v.begin(), v.end(), 7);
assert (k == v.end()-1 && *k == 8);
pair< vector<int>::iterator, vector<int>::iterator > pi =
equal_range(v.begin(), v.end(), 7);
assert (pi.first == v.begin() + 1);
assert (pi.second == v.end() - 1);
cout<< " --- Ok."<< endl;
return 0;
}
]]></script>
'STL > 정렬 관련 알고리즘' 카테고리의 다른 글
[STL] nth_element (0) | 2010.05.17 |
---|---|
[STL] min_max (0) | 2010.05.17 |
[STL] merge (0) | 2010.05.17 |
[STL] lexicographical_compare (0) | 2010.05.17 |
[STL] heap (0) | 2010.05.17 |