Шаг 264.
Библиотека STL.
Алгоритмы STL. Вспомогательные функции

    На этом шаге мы приведем текст двух вспомогательных функций, которые будут использоваться в дальнейших примерах.

    В следующих шагах приводятся подробные описания всех алгоритмов. Для каждого алгоритма дается минимум один пример. Следующие вспомогательные функции упрощают код примеров, чтобы вы могли сосредоточиться на наиболее содержательных аспектах:

#ifndef ALGOSTUFF_HPP
#define ALGOSTUFF_HPP 

#include <iostream>
#include <vector>
#include <deque>
#include <list>
#include <set>
#include <map>
#include <string>
#include <algorithm>
#include <functional>
#include <numeric>

// PRINT_ELEMENTS()
//  - вывод необязательной строки C, за которой выводятся
//  - все элементы коллекции coll, разделенные пробелами.
template <class T>
inline void PRINT_ELEMENTS (const T& coll, const char* optcstr="")
{
    typename T::const_iterator pos;

    std::cout << optcstr;
    for (pos=coll.begin(); pos!=coll.end(); ++pos) {
        std::cout << *pos << ' ';
    }
    std::cout << std::endl;
}
// INSERT_ELEMENTS (collection, first, last)
//  - заполнение коллекции значениями от first до last
//  - ВНИМАНИЕ: интервал НЕ ЯВЛЯЕТСЯ полуоткрытым
template <class T>
inline void INSERT_ELEMENTS (T& coll, int first, int last)
{
    for (int i=first; i<=last; ++i) {
        coll.insert(coll.end(),i);
    }
}

#endif //

    Сначала в файл agostuff.hpp включаются все заголовочные файлы, которые могут быть задействованы в примерах, чтобы их не пришлось включать отдельно. Затем определяются две вспомогательные функции.

    На следующем шаге мы рассмотрим алгоритм for_each.




Предыдущий шаг Содержание Следующий шаг