#include ‹stl.h›
#include ‹iostream.h›
#include ‹string.h›
char* word1 = 'ABCDEFGHIJKLMNO';
char* word2 = 'LMNOPQRSTUVWXYZ';
int main() {
ostream_iterator ‹char› iter(cout, ' ');
cout ‹‹ 'word1: ';
copy(word1, word1 + ::strlen(word1), iter);
cout ‹‹ '
word2: ';
copy(word2, word2 + ::strlen(word2), iter);
cout ‹‹ endl;
set_intersection(word1, word1 + ::strlen(word1), word2, word2 + ::strlen(word2), iter, less‹char›());
cout ‹‹ endl;
return 0;
}
inrprod1.cpp
#include ‹stl.h›
#include ‹iostream.h›
#include ‹string.h›
int main() {
vector‹int› v1(3);
vector‹int› v2(v1.size());
for (int i = 0; i ‹ v1.size(); i++) {
v1[i] = i + 1;
v2[i] = v1.size() - i;
}
ostream_iterator‹int› iter(cout, ' ');
cout ‹‹ 'Inner product(sum of products) of:
';
copy(v1.begin(), v1.end(), iter);
cout ‹‹ '
';
copy(v2.begin(), v2.end(), iter);
int result = inner_product(v1.begin(), v1.end(), v2.begin(), 0);
cout ‹‹ '
is: ' ‹‹ result ‹‹ endl;
return 0;
}
merge1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main() {
vector‹int› v1(5);
vector‹int› v2(v1.size());
iota(v1.begin(), v1.end(), 0);
iota(v2.begin(), v2.end(), 3);
vector‹int› result(v1.size() + v2.size());
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), result.begin());
ostream_iterator‹int› iter(cout, ' ');
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
copy(v2.begin(), v2.end(), iter);
cout ‹‹ endl;
copy(result.begin(), result.end(), iter);
cout ‹‹ endl;
return 0;
}
bcompos2.cpp
#include ‹iostream.h›
#include ‹stl.h›
struct odd: public unary_function‹int, bool› {
odd() {}
bool operator() (int n_) const {return (n_ % 2) - 1;}
};
struct positive: public unary_function‹int, bool› {
positive() {}
bool operator() (int n_) const {return n_ ›= 0;}
};
int array[6] = {-2, -1, 0, 1, 2, 3};
int main() {
int* p = find_if(array, array + 6, compose2(logical_and‹bool›(), odd(), positive()));
if (p != array + 6) cout ‹‹ *p ‹‹ ' is odd and positive' ‹‹ endl;
return 0;
}
error3.cpp
#include ‹stl.h›