cout ‹‹ "Found two adjacent strings of equal length: " ‹‹ *location
‹‹ " -and- " ‹‹ *(location + 1) ‹‹ endl;
else cout ‹‹ "Didn't find two adjacent strings of equal length.";
return 0;
}
list3.cpp
#include ‹iostream.h›
#include ‹stl.h›
char array[] = {'x', 'l', 'x', 't', 's', 's'};
int main {
list‹char› str(array, array + 6);
list‹char›::iterator i;
cout ‹‹ "original: ";
for (i = str.begin; i != str.end; i++) cout ‹‹ *i;
cout ‹‹ endl;
cout ‹‹ "reversed: ";
str.reverse;
for (i = str.begin; i != str.end; i++) cout ‹‹ *i;
cout ‹‹ endl;
cout ‹‹ "removed: ";
str.remove('x');
for (i = str.begin; i != str.end; i++) cout ‹‹ *i;
cout ‹‹ endl;
cout ‹‹ "uniqued: ";
str.unique;
for (i = str.begin; i != str.end; i++) cout ‹‹ *i;
cout ‹‹ endl;
cout ‹‹ "sorted: ";
str.sort;
for (i = str.begin; i != str.end; i++) cout ‹‹ *i;
cout ‹‹ endl;
return 0;
}
parsrtc2.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;
vector‹char*› result(5);
partial_sort_copy(v1.begin, v1.end, result.begin, result.end, str_compare);
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
return 0;
}
vec6.cpp
#include ‹iostream.h›
#include ‹stl.h›
int array[] = {1, 4, 9, 16, 25, 36};
int main {
vector‹int› v(array, array + 6);
for (int i = 0; i ‹ v.size; i++) cout ‹‹ "v[" ‹‹ i ‹‹ "] = " ‹‹ v[i] ‹‹ endl;
cout ‹‹ endl;
v.erase(v.begin); // Erase first element.
for (i = 0; i ‹ v.size; i++) cout ‹‹ "v[" ‹‹ i ‹‹ "] = " ‹‹ v[i] ‹‹ endl;
cout ‹‹ endl;
v.erase(v.end - 1); // Erase last element.
for (i = 0; i ‹ v.size; i++) cout ‹‹ "v[" ‹‹ i ‹‹ "] = " ‹‹ v[i] ‹‹ endl;
cout ‹‹ endl;
v.erase(v.begin + 1, v.end - 1); // Erase all but first and last.
for (i = 0; i ‹ v.size; i++)
cout ‹‹ "v[" ‹‹ i ‹‹ "] = " ‹‹ v[i] ‹‹ endl;
cout ‹‹ endl;
v.erase; // Erase all.
return 0;
}
inrprod2.cpp
#include ‹stl.h›
#include ‹iostream.h›
#include ‹string.h›
int add(int a_, int b_) {
return a_ + b_;
}
int mult(int a_, int b_) {
return a_ * b_;
}
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(product of sums):\n\t";
copy(v1.begin, v1.end, iter);
cout ‹‹ "\n\t";
copy(v2.begin, v2.end, iter);