adjfind0.cpp
#include ‹stl.h›
#include ‹iostream.h›
int numbers1[5] = {1, 2, 4, 8, 16};
int numbers2[5] = {5, 3, 2, 1, 1};
int main() {
int* location = adjacent_find(numbers1, numbers1 + 5);
if (location != numbers1 + 5)
cout ‹‹ 'Found adjacent pair of: ' ‹‹ *location ‹‹ ' at offset ' ‹‹ (location - numbers1) ‹‹ endl;
else cout ‹‹ 'No adjacent pairs' ‹‹ endl;
location = adjacent_find(numbers2, numbers2 + 5);
if (location != numbers2 + 5)
cout ‹‹ 'Found adjacent pair of: ' ‹‹ *location ‹‹ ' at offset ' ‹‹ (location - numbers2) ‹‹ endl;
else cout ‹‹ 'No adjacent pairs' ‹‹ endl;
return 0;
}
parsrt2.cpp
#include ‹stl.h›
#include ‹iostream.h›
#include ‹string.h›
bool str_compare(const char* a_, const char* b_) {
return ::strcmp(a_, b_) ‹ 0 ? 1: 0;
}
char* names[] = {'aa', 'ff', 'dd', 'ee', 'cc', 'bb'};
int main() {
const unsigned nameSize = sizeof(names) / sizeof(names[0]);
vector‹char*› v1(nameSize);
for (int i = 0; i ‹ v1.size(); i++) v1[i] = names[i];
ostream_iterator‹char*› iter(cout, ' ');
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
partial_sort(v1.begin(), v1.begin() + nameSize/2, v1.end(), str_compare);
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
return 0;
}
mset5.cpp
#include ‹iostream.h›
#include ‹stl.h›
bool less_than(int a_, int b_) {
return a_ ‹ b_;
}
bool greater_than(int a_, int b_) {
return a_ › b_;
}
int array[] = {3, 6, 1, 9};
int main() {
typedef pointer_to_binary_function‹int, int, bool› fn_type;
typedef multiset‹int, fn_type› mset;
fn_type f(less_than);
mset s1(array, array + 4, f);
mset::const_iterator i = s1.begin();
cout ‹‹ 'Using less_than: ' ‹‹ endl;
while (i != s1.end()) cout ‹‹ *i++ ‹‹ endl;
fn_type g(greater_than);
mset s2(array, array + 4, g);
i = s2.begin();
cout ‹‹ 'Using greater_than: ' ‹‹ endl;
while (i != s2.end()) cout ‹‹ *i++ ‹‹ endl;
return 0;
}
mset1.cpp
#include ‹iostream.h›
#include ‹stl.h›
int main() {
typedef multiset‹int, less‹int› › mset;
mset s;
cout ‹‹ 'count(42) = ' ‹‹ s.count(42) ‹‹ endl;
s.insert(42);
cout ‹‹ 'count(42) = ' ‹‹ s.count(42) ‹‹ endl;
s.insert(42);
cout ‹‹ 'count(42) = ' ‹‹ s.count(42) ‹‹ endl;
set‹int, less‹int› ›::iterator i = s.find(40);