copy4.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main() {
typedef vector‹int› IVec;
vector‹int› v1(10);
for (int loc = 0; loc ‹ v1.size(); loc++) v1[loc] = loc;
vector‹int› v2;
insert_iterator‹IVec› i (v2, v2.begin());
copy(v1.begin(), v1.end(), i);
ostream_iterator‹int› outiter(cout, ' ');
copy(v2.begin(), v2.end(), outIter);
cout ‹‹ endl;
return 0;
}
prevprm2.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main() {
vector‹int› v1(3);
iota(v1.begin(), v1.end(), 0);
ostream_iterator‹int› iter(cout, ' ');
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
for (int i = 0; i ‹ 9; i++) {
prev_permutation(v1.begin(), v1.end(), greater‹int›());
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
}
return 0;
}
trnsfrm2.cpp
#include ‹stl.h›
#include ‹iostream.h›
#include ‹string.h›
char map_char(char a_, int b_) {
return char(a_ + b_);
}
int trans[] = {-4, 4, -6, -6, -10, 0, 10, -6, 6, 0, -1, -77};
char n[] = 'Larry Mullen';
int main() {
const unsigned count = ::strlen(n);
ostream_iterator ‹char› iter(cout);
transform(n, n + count, trans, iter, map_char);
cout ‹‹ endl;
return 0;
}
iter1.cpp
#include ‹iostream.h›
#include ‹stl.h›
int main() {
vector‹const char*› v; // Vector of character strings.
v.push_back((char*) 'zippy'); // First element.
v.push_back((char*) 'motorboy'); // Second element.
vector‹const char*›::iterator i = v.begin(); // Position at end.
for (i = v.begin(); i != v.end(); i++) cout ‹‹ *i ‹‹ endl; // Display item.
return 0;
}
maxelem2.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[] = {'Brett', 'Graham', 'Jack', 'Mike', 'Todd'};
int main() {
const unsigned namesCt = sizeof(names)/sizeof(names[0]);
cout ‹‹ *max_element(names, names + namesCt, str_compare) ‹‹ endl;
return 0;
}