Александр Степанов - РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)

Здесь есть возможность читать онлайн «Александр Степанов - РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 1999, Издательство: МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ), Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

  • Название:
    РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)
  • Автор:
  • Издательство:
    МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
  • Жанр:
  • Год:
    1999
  • Город:
    Москва
  • ISBN:
    нет данных
  • Рейтинг книги:
    4 / 5. Голосов: 1
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL): краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL) — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

template ‹class T›

struct times: binary_function‹T, T, T› {

Т operator()(const T& x, const T& y) const (return x * y;}

};

template ‹class T›

struct divides: binary_function‹T, T, T› {

Т operator()(const T& x, const T& y) const {return x / y;}

};

template ‹class T›

struct modulus: binary_function‹T, T, T› {

Т operator()(const T& x, const T& y) const {return x % y;}

};

template ‹class T›

struct negate: unary_function‹T, T› {

Т operator()(const T& x) const {return -x;}

};

Сравнения (Comparisons)

Библиотека обеспечивает базовые классы функциональных объектов для всех операторов сравнения языка

template ‹class T›

struct equal_to: binary_function‹T, T, bool› {

bool operator()(const T& x, const T& y) const {return x == y;}

};

template ‹class T›

struct not_equal_to: binary_function‹T, T, bool› {

bool operator()(const T& x, const T& y) const {return x!= y;}

};

template ‹class T›

struct greater: binary_function‹T, T, bool› {

bool operator()(const T& x, const T& y) const {return x › y;}

};

template ‹class T›

struct less: binary_function‹T, T, bool› {

bool operator()(const T& x, const T& y) const {return x ‹ y;}

};

template ‹class T›

struct greater_equal: binary_function‹T, T, bool› {

bool operator()(const T& x, const T& y) const {return x ›= y;}

};

template ‹class T›

struct less_equal: binary_function‹T, T, bool› {

bool operator()(const T& x, const T& y) const {return x ‹= y;}

};

Логические операции (Logical operations)

template ‹class T›

struct logical_and: binary_function‹T, T, bool› {

bool operator()(const T& x, const T& y) const {return x&& y;}

};

template ‹class T›

struct logical_or: binary_function‹T, T, bool› {

bool operator()(const T& x, const T& y) const {return x || y;}

};

template ‹class T›

struct logical_not: unary_function‹T, bool› {

bool operator()(const T& x) const {return!x;}

};

Распределители

Одна из общих проблем в мобильности - это способность инкапсулировать информацию относительно модели памяти. Эта информация включает типы указателей, тип их разности, тип размера объектов в этой модели памяти, также как её примитивы выделения и освобождения памяти.

STL принимается за эту проблему, обеспечивая стандартный набор требований для распределителей ( allocators ), являющихся объектами, которые инкапсулируют эту информацию. Все контейнеры в STL параметризованы в терминах распределителей. Это значительно упрощает задачу взаимодействия с многочисленными моделями памяти.

Требования распределителей (Allocator requirements)

В следующей таблице мы предполагаем, что X - класс распределителей для объектов типа T, a - значение X, n имеет тип X::size_type, p имеет тип X::pointer, r имеет тип X::reference и s имеет тип X::const_reference.

Все операции c распределителями, как ожидается, сводятся к постоянному времени.

Таблица 7. Требования распределителей

выражение возвращаемый тип утверждение/примечание состояние до/после
X::value_type Т -
X::reference леводопустимое значение T (lvalue of T) -
X::const_reference const lvalue of T -
X::pointer указатель на тип T результатом operator* для значений X::pointer является reference.
X::const_pointer указатель на тип const T результат operator* для значений X::const_pointer ― const_reference; это - тот же самый тип указателя, как X::pointer, в частности, sizeof(X::const_pointer)==sizeof(X::pointer).
X:: size_type беззнаковый целочисленный тип тип, который может представлять размер самого большого объекта в модели памяти.
X::difference_type знаковый целочисленный тип тип, который может представлять разность между двумя любыми указателями в модели памяти.
X a; - примечание: предполагается деструктор.
a.address(r) указатель *(a.address(r))==r.
a.const_address(s) const_pointer *(a.address(s))==s.
a.allocate(n) X::pointer память распределяется для n объектов типа T, но объекты не создаются. allocate может вызывать соответствующее исключение.
a.deallocate(p) результат не используется все объекты в области, указываемой p, должны быть уничтожены до этого запроса.
construct(p, a) void после: *p==a.
destroy(p) void значение, указываемое p, уничтожается.
a.init_page_size() X::size_type возвращённое значение - оптимальное значение для начального размера буфера данного типа. Предполагается, что если k возвращено функцией init_page_size, t - время конструирования для T, и u - время, которое требуется для выполнения allocate(k), тогда k*t будет намного больше, чем u.
a.max_size() X::size_type наибольшее положительное значение X::difference_type

pointer относится к категории модифицируемых итераторов произвольного доступа, ссылающихся на T. const_pointer относится к категории постоянных итераторов произвольного доступа, ссылающихся на T. Имеется определённое преобразование из pointer в const_pointer.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)»

Представляем Вашему вниманию похожие книги на «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)»

Обсуждение, отзывы о книге «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x