Выбрать главу

 cout ‹‹ endl;

 for (i = 0; i ‹ 6; i++) cout ‹‹ result[i] ‹‹ ' ';

 cout ‹‹ endl;

 return 0;

}

finsert1.cpp

#include ‹iostream.h›

#include ‹stl.h›

char* array[] = {"laurie", "jennifer", "leisa"};

int main() {

 deque‹char*› names;

 copy(array, array + 3, front_insert_iterator‹deque ‹char*› ›(names));

 deque‹char*›::iterator i;

 for (i = names.begin(); i!= names.end(); i++) cout ‹‹ *i ‹‹ endl;

 return 0;

}

remcpif1.cpp

#include ‹stl.h›

#include ‹iostream.h›

bool odd(int a_) {

 return a_ % 2;

}

int numbers[6] = {1, 2, 3, 1, 2, 3};

int result[6] = {0, 0, 0, 0, 0, 0};

int main() {

 remove_copy_if(numbers, numbers + 6, result, odd);

 for (int i = 0; i ‹ 6; i++) cout ‹‹ result[i] ‹‹ ' ';

 cout ‹‹ endl;

 return 0;

}

inplmrg1.cpp

#include ‹stl.h›

#include ‹iostream.h›

int numbers[6] = {1, 10, 42, 3, 16, 32};

int main() {

 for (int i = 0; i ‹ 6; i++) cout ‹‹ numbers[i] ‹‹ ' ';

 cout ‹‹ endl;

 inplace_merge(numbers, numbers + 3, numbers + 6);

 for (i = 0; i ‹ 6; i++) cout ‹‹ numbers[i] ‹‹ ' ';

 cout ‹‹ endl;

 return 0;

}

list4.cpp

#include ‹iostream.h›

#include ‹stl.h›

int array1[] = {1, 3, 6, 7};

int array2[] = {2, 4};

int main() {

 list‹int› l1(array1, array1 + 4);

 list‹int› l2(array2, array2 + 2);

 l1.merge(l2);

 for (list‹int›::iterator i = l1.begin(); i != l1.end(); i++) cout ‹‹ *i;

 cout ‹‹ endl;

 return 0;

}

revbit1.cpp

#include ‹iostream.h›

#include ‹stl.h›

int array[] = {1, 5, 2, 3};

int main() {

 list‹int› v(array, array + 4);

 reverse_bidirectional_iterator‹list‹int›::iterator, int, list‹int›::reference, list‹int›::difference_type› r(v.end());

 while (r != v.begin())

 cout ‹‹ *r++ ‹‹ endl;

 return 0;

}

copy3.cpp

#include ‹stl.h›

#include ‹iostream.h›

int main() {

 vector‹int› v1(10);

 for (int i = 0; i ‹ v1.size(); i++) v1[i] = i;

 vector‹int› v2(10);

 copy(v1.begin(), v1.end(), v2.begin());

 ostream_iterator‹int› iter(cout, " ");

 copy(v2.begin(), v2.end(), iter);

 cout ‹‹ endl;

 return 0;

}

merge0.cpp

#include ‹stl.h›

#include ‹iostream.h›

int numbers1[5] = {1, 6, 13, 25, 101};

int numbers2[5] = {-5, 26, 36, 46, 99};

int main() {

 int result[10];

 merge(numbers1, numbers1 + 5, numbers2, numbers2 + 5, result);

 for (int i = 0; i ‹ 10; i++) cout ‹‹ result[i] ‹‹ ' ';

 cout ‹‹ endl;

 return 0;

}

reviter1.cpp

#include ‹iostream.h›

#include ‹stl.h›

int array[] = {1, 5, 2, 3};

int main() {

 vector‹int› v(array, array + 4);

 stl_reverse_iterator‹vector‹int›::iterator, int, vector‹int›::reference, vector‹int›::difference_type› r (v.end());

 while (r!= v.begin()) cout ‹‹ *r++ ‹‹ endl;

 return 0;

}

find1.cpp

#include ‹stl.h›

#include ‹iostream.h›

int years[] = {1942, 1952, 1962, 1972, 1982, 1992};

int main() {

 const unsigned yearCount = sizeof(years) / sizeof(years[0]);

 int* location = find(years, years + yearCount, 1972);

 cout ‹‹ "Found 1972 at offset " ‹‹ (location - years) ‹‹ endl;

 return 0;

}

trnsfrm1.cpp

#include ‹stl.h›

#include ‹iostream.h›

int negate_int(int a_) {

 return -a_;

}

int numbers[6] = {-5, -1, 0, 1, 6, 11};

int main() {

 int result[6];

 transform(numbers, numbers + 6, result, negate_int);

 for (int i = 0; i ‹ 6; i++) cout ‹‹ result[i] ‹‹ ' ';

 cout ‹‹ endl;

 return 0;

}

binsert2.cpp

#include ‹iostream.h›

#include ‹stl.h›

char* array[] = {"laurie", "jennifer", "leisa"};

int main() {

 vector‹char*› names;

 copy(array, array + 3, back_inserter(names));

 vector‹char*›::iterator i;

 for (i = names.begin(); i!= names.end(); i++) cout ‹‹ *i ‹‹ endl;

 return 0;

}

finsert2.cpp

#include ‹iostream.h›

#include ‹stl.h›

char* array[] = {"laurie", "jennifer", "leisa"};

int main() {

 deque‹char*› names;

 copy(array, array + 3, front_inserter(names));

 deque‹char*›::iterator i;

 for (i = names.begin(); i!= names.end(); i++) cout ‹‹ *i ‹‹ endl;

 return 0;

}

mset2.cpp

#include ‹iostream.h›

#include ‹stl.h›

char* names[] = {"dave", "alf", "chas", "bob", "ed", "chas"};

int main() {

 typedef multiset‹char*, less_s› mset;

 mset s;

 s.insert(names, names + 6);

 for (mset::iterator i = s.begin(); i!= s.end(); i++) cout ‹‹ *i ‹‹ endl;

 return 0;

}

ostmit.cpp

#include ‹iostream.h›

#include ‹stl.h›

int array[] = {1, 5, 2, 4};

int main() {

 char* string = "hello";

 ostream_iterator‹char› it1(cout);

 copy(string, string + 5, it1);

 cout ‹‹ endl;

 ostream_iterator‹int› it2(cout);

 copy(array, array + 4, it2);

 cout ‹‹ endl;

 return 0;

}

ptrunf1.cpp

#include ‹iostream.h›

#include ‹stl.h›

bool even(int n_) {

 return (n_ % 2) == 0;

}

int array[3] = {1, 2, 3};

int main() {

 int* p = find_if(array, array + 3, pointer_to_unary_function‹int, bool›(even));

 if (p != array + 3) cout ‹‹ *p ‹‹ " is even" ‹‹ endl;

 return 0;

}

func1.cpp

#include ‹iostream.h›

#include ‹stl.h›

bool bigger(int i_) {

 return i_ › 3;

}