Читайте также
Глава 5. Численные методы
Дважды [члены Парламента] задавали мне вопрос: «А скажите, мистер Бэббидж, если вы заложите в эту машину неверные числа, то получите правильный результат?» Не могу даже представить себе, насколько извращенно должен мыслить человек, задающий такие
Операции с итераторами (Iterator operations)
Так как только итераторы произвольного доступа обеспечивают + и - операторы, библиотека предоставляет две шаблонные функции advance и distance. Эти функции используют + и - для итераторов произвольного доступа (и имеют, поэтому, сложность
Арифметические операции (Arithmetic operations)
Библиотека обеспечивает базовые классы функциональных объектов для всех арифметических операторов языка.template ‹class T›struct plus: binary_function‹T, T, T› { Т operator()(const T& x, const T& y) const {return x + y;}};template ‹class T›struct minus: binary_function‹T, T, T› { Т operator()(const T&
Логические операции (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
Не меняющие последовательность операции (Non-mutating sequence operations)
Операции с каждым элементом (For each)
template <class InputIterator, class Function> Function for_each(InputIterator first, InputIterator last, Function f);for_each применяет f к результату разыменования каждого итератора в диапазоне [first, last) и возвращает f. Принято,
Меняющие последовательность операции (Mutating sequence operations)
Копировать (Copy)
template ‹class InputIterator, class OutputIterator›OutputIterator copy(InputIterator first, InputIterator last, OutputIterator result);copy копирует элементы. Для каждого неотрицательного целого числа n ‹ (last - first) выполняется присваивание *(result + n) = *(first + n).
Операции сортировки и отношения (Sorting and related operations)
Все операции в этом разделе имеют две версии: одна берёт в качестве параметра функциональный объект типа Compare, а другая использует operator‹.Compare - функциональный объект, который возвращает значение, обратимое в bool. Compare comp
Операции над множеством для сортированных структур (Set operations on sorted structures)
Этот раздел определяет все основные операции над множеством для сортированных структур. Они даже работают с множествами с дубликатами, содержащими множественные копии равных элементов. Семантика
Операции над пирамидами (Heap operations)
Пирамида - специфическая организация элементов в диапазоне между двумя итераторами произвольного доступа [a, b). Два её ключевые свойства: (1) *a - самый большой элемент в диапазоне, (2) *a может быть удалён с помощью pop_heap или новый элемент
6.6.3. Обобщенные алгоритмы
Операции, описанные в предыдущих разделах, составляют набор, поддерживаемый непосредственно контейнерами vector и deque. Согласитесь, что это весьма небогатый интерфейс и ему явно не хватает базовых операций find(), sort(), merge() и т.д. Планировалось
12. Обобщенные алгоритмы
В нашу реализацию класса Array (см. главу 2) мы включили функции-члены для поддержки операций min(), max() и sort(). Однако в стандартном классе vector эти, на первый взгляд фундаментальные, операции отсутствуют. Для нахождения минимального или максимального
12.5. Обобщенные алгоритмы
Первые два аргумента любого обобщенного алгоритма (разумеется, есть исключения, которые только подтверждают правило) – это пара итераторов, обычно называемых first и last, ограничивающих диапазон элементов внутри контейнера или встроенного массива,
12.5.5. Численные алгоритмы
Следующие четыре алгоритма реализуют численные операции с контейнером. Для их использования необходимо включить заголовочный файл numeric.accumulate(), partial_sum(), inner_product(),
BIGINT, NUMERIC(18,0)
Доступны только в диалекте 3. Это 8-байтовое целое, полезное для хранения целых чисел с очень маленькими и очень большими значениями. В диалекте 3 генерируются числа типа BIGINT (см. разд.
Тип данных NUMERIC
Формат типа данных NUMERIC:NUMERIC(p,s)Например, NUMERIC (4,2) определяет число, состоящее не более чем из четырех цифр, включая две цифры справа от десятичной точки. Следовательно, числа 89.12 и 4.321 будут сохранены в столбце NUMERIC(4,2) как 89.12 и 4.32 соответственно. Во втором
7.3.5 Обобщенные Классы
Очевидно, можно было бы определить списки других типов (classdef*, int, char* и т.д.) точно так же, как был опредлен класс nlist: простым выводом из класса slist. Процесс оределения таких новых типов утомителен (и потому чреват ошиками), но с помощью макросов его можно