Чтение онлайн

ЖАНРЫ

РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)

Менг Ли

Шрифт:

replif1.cpp

#include ‹stl.h›

#include ‹iostream.h›

bool odd(int a_) {

 return a_ % 2;

}

int main {

 vector‹int› v1(10);

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

v1[i] = i % 5;

cout ‹‹ v1[i] ‹‹ ' ';

 }

 cout ‹‹ endl;

 replace_if(v1.begin, v1.end, odd, 42);

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

 cout ‹‹ endl;

 return 0;

}

mset4.cpp

#include ‹iostream.h›

#include ‹stl.h›

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

int main
{

 typedef multiset‹int, less‹int› › mset;

 mset s(array, array + 9);

 pair‹mset::const_iterator, mset::const_iterator› p = s.equal_range(3);

 cout ‹‹ "lower bound = " ‹‹ *(p.first) ‹‹ endl;

 cout ‹‹ "upper bound = " ‹‹ *(p.second) ‹‹ endl;

 return 0;

}

iter3.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*›::reverse_iterator i;

 for (i = v.rbegin; i!= v.rend; i++) cout ‹‹ *i ‹‹ endl; // Display item.

 return 0;

}

list2.cpp

#include ‹iostream.h›

#include ‹stl.h›

int array1[] = {1, 16};

int array2[] = {4, 9};

int main {

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

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

 list‹int›::iterator i = l1.begin;

 i++;

 l1.splice(i, l2, l2.begin, l2.end);

 i = l1.begin;

 while (i != l1.end) cout ‹‹ *i++ ‹‹ endl;

 return 0;

}

set1.cpp

#include ‹iostream.h›

#include ‹stl.h›

int main {

 set‹int, less‹int› › s;

 cout ‹‹ "count(42) = " ‹‹ s.count(42) ‹‹ endl;

 s.insert(42);

 cout ‹‹ "count(42) = " ‹‹ s.count(42) ‹‹ endl;

 s.insert(42);

 cout ‹‹ "count(42) = " ‹‹ s.count(42) ‹‹ endl;

 int count = s.erase(42);

 cout ‹‹ count ‹‹ " elements erased" ‹‹ endl;

 return 0;

}

list1.cpp

#include ‹iostream.h›

#include ‹stl.h›

int array1[] = {9, 16, 36};

int array2[] = {1, 4};

int main {

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

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

 list‹int›::iterator i1 = l1.begin;

 l1.splice(i1, l2);

 list‹int›::iterator i2 = l1.begin;

 while (i2!= l1.end) cout ‹‹ *i2++ ‹‹ endl;

 return 0;

}

alg5.cpp

#include ‹iostream.h›

#include ‹stl.h›

int main {

 list‹int› years;

 years.push_back(1962);

 years.push_back(1992);

 years.push_back(2001);

 years.push_back(1999);

 sort(years.begin, years.end); // Causes linker error.

 list‹int›::iterator i;

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

 return 0;

}

eqlrnge0.cpp

#include ‹stl.h›

#include ‹iostream.h›

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

int main {

 pair ‹int*, int*› range;

 range = equal_range(numbers, numbers + 10, 2);

 cout ‹‹ "2 can be inserted from before index " ‹‹ (range.first - numbers)

‹‹ " to before index " ‹‹ (range.second - numbers) ‹‹ endl;

 return 0;

}

advance.cpp

#include ‹stl.h›

#include ‹iostream.h›

int main {

 typedef vector‹int› IntVector;

 IntVector v(10);

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

 IntVector::iterator location = v.begin;

Поделиться с друзьями: