ucompos2.cpp
#include ‹iostream.h›
#include ‹math.h›
#include ‹stl.h›
struct square_root: public unary_function‹double, double› {
square_root() {}
double operator() (double x_) const {return sqrt(x_);}
};
int input[3] = {-1, -4, -16};
int main() {
int output[3];
transform(input, input + 3, output, compose1(square_root(), negate‹int›()));
for (int i = 0; i ‹ 3; i++) cout ‹‹ output[i] ‹‹ endl;
return 0;
}
parsrt1.cpp
#include ‹stl.h›
#include ‹stdlib.h›
#include ‹iostream.h›
int main() {
vector‹int› v1(10);
for (int i = 0; i ‹ v1.size(); i++)
v1[i] = rand() % 10;
ostream_iterator‹int› iter(cout, ' ');
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
partial_sort(v1.begin(), v1.begin() + v1.size() / 2, v1.end());
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
return 0;
}
equal2.cpp
#include ‹stl.h›
#include ‹iostream.h›
bool values_squared(int a_, int b_) {
return (a_ * a_ == b_);
}
int main() {
vector‹int› v1(10);
vector‹int› v2(10);
for (int i = 0; i ‹ v1.size(); i++) {
v1[i] = i;
v2[i] = i * i;
}
if (equal(v1.begin(), v1.end(), v2.begin(), values_squared))
cout ‹‹ 'v2[i] == v1[i] * v1[i]' ‹‹ endl;
else cout ‹‹ 'v2[i] != v1[i] * v1[i]' ‹‹ endl;
return 0;
}
inplmrg2.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main() {
vector‹int› v1(10);
for (int i = 0; i ‹ v1.size(); i++) v1[i] = (v1.size() - i - 1) % 5;
ostream_iterator‹int› iter(cout, ' ');
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
inplace_merge(v1.begin(), v1.begin() + 5, v1.end(), greater‹int›());
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
return 0;
}
nthelem1.cpp
#include ‹stl.h›
#include ‹stdlib.h›
#include ‹iostream.h›
int main() {
vector‹int› v1(10);
for (int i = 0; i ‹ v1.size(); i++) v1[i] = rand() % 10;
ostream_iterator‹int› iter(cout, ' ');
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;