ВУЗ:
Составители:
Рубрика:
81
ных предикатов UnPred, бинарных – BinPred. Тип аргументов соответст-
вует типу хранящихся в контейнере объектов.
Определен специальный тип бинарного предиката для сравнения
двух элементов. Он называется функцией сравнения (comparison
function). Функция возвращает истину, если первый элемент меньше вто-
рого. Типом функции является тип Comp.
Особую роль в STL играют объекты-функции.
Объекты-функции
− это экземпляры класса, в котором определена
операция «круглые скобки» (). В ряде случаев удобно заменить функцию
на объект-функцию. Когда объект-функция используется в качестве функ-
ции, то для ее вызова используется operator ().
Пример 1.
class less{
public:
bool operator()(int x,int y)
{return x<y;}
};
3. Классы-контейнеры.
В STL определены два типа контейнеров: последовательности и ас-
социативные.
Ключевая идея
для стандартных контейнеров заключается в том, что
когда это представляется разумным, они должны быть логически взаимо-
заменяемыми. Пользователь может выбирать между ними, основываясь на
соображениях эффективности и потребности в специализированных опе-
рациях. Например, если часто требуется поиск по ключу, можно восполь-
зоваться map (ассоциативным массивом). С другой стороны, если преоб-
ладают операции, характерные для списков, можно воспользоваться кон-
тейнером list. Если добавление и удаление элементов часто производится в
концы контейнера, следует подумать об использовании очереди queue,
очереди с двумя концами deque, стека stack. По умолчанию пользователь
должен использовать vector; он реализован, чтобы хорошо работать для
самого широкого диапазона задач.
Идея обращения
с различными видами контейнеров и, в общем слу-
чае, со всеми видами источников информации – унифицированным спосо-
бом ведет к понятию обобщенного программирования. Для поддержки
этой идеи STL содержит множество обобщенных алгоритмов. Такие алго-
ритмы избавляют программиста от необходимости знать подробности от-
дельных контейнеров.
В STL определены следующие классы-контейнеры (в угловых скоб-
ках указаны заголовочные файлы, где определены эти классы):
81 ных предикатов UnPred, бинарных – BinPred. Тип аргументов соответст- вует типу хранящихся в контейнере объектов. Определен специальный тип бинарного предиката для сравнения двух элементов. Он называется функцией сравнения (comparison function). Функция возвращает истину, если первый элемент меньше вто- рого. Типом функции является тип Comp. Особую роль в STL играют объекты-функции. Объекты-функции − это экземпляры класса, в котором определена операция «круглые скобки» (). В ряде случаев удобно заменить функцию на объект-функцию. Когда объект-функция используется в качестве функ- ции, то для ее вызова используется operator (). Пример 1. class less{ public: bool operator()(int x,int y) {return x
Страницы
- « первая
- ‹ предыдущая
- …
- 78
- 79
- 80
- 81
- 82
- …
- следующая ›
- последняя »