Шрифт:
mmap::iterator i = m.find('X'); // Find first match.
while (i != m.end) { // Loop until end is reached.
cout ‹‹ (*i).first ‹‹ " -› " ‹‹ (*i).second ‹‹ endl;
i++;
}
int count = m.erase('X');
cout ‹‹ "Erased " ‹‹ count ‹‹ " items" ‹‹ endl;
return 0;
}
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;