Библиотека knigago >> Компьютеры: Языки и системы программирования >> Другие языки и системы программирования >> Руководство по стандартной библиотеке шаблонов (STL)


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1684, книга: Особенности процесса продаж
автор: Илья Мельников

Книга «Особенности процесса продаж» И. Мельникова — это практическое руководство для специалистов по продажам, менеджеров и всех, кто хочет улучшить свои навыки в этой области. Автор подробно и структурированно излагает основные аспекты процесса продаж, включая: * Подготовка к продажам * Установление контакта с клиентом * Выявление потребностей * Презентация продукта или услуги * Работа с возражениями * Закрытие сделки И. Мельников использует примеры из реального бизнеса, чтобы...

Александр Александрович Степанов - Руководство по стандартной библиотеке шаблонов (STL)

Руководство по стандартной библиотеке шаблонов (STL)
Книга - Руководство по стандартной библиотеке шаблонов (STL).  Александр Александрович Степанов  - прочитать полностью в библиотеке КнигаГо
Название:
Руководство по стандартной библиотеке шаблонов (STL)
Александр Александрович Степанов

Жанр:

Другие языки и системы программирования

Изадано в серии:

неизвестно

Издательство:

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Руководство по стандартной библиотеке шаблонов (STL)"

Аннотация к этой книге отсутствует.

Читаем онлайн "Руководство по стандартной библиотеке шаблонов (STL)". [Страница - 4]

перезаписывается таким же образом, как любое другое значение. Разыменовываемые и законечные значения всегда являются неисключительными.

Итератор j называется доступным (reachable) из итератора i, если и только если имеется конечная последовательность применений operator++ к i, которая делает i==j. Если i и j относятся к одному и тому же контейнеру, тогда или j доступен из i, или i доступен из j, или оба доступны (i==j).

Большинство алгоритмических шаблонов библиотеки, которые работают со структурами данных, имеют интерфейсы, которые используют диапазоны. Диапазон - это пара итераторов, которые указывают начало и конец вычисления. Интервал [i,i) - пустой диапазон; вообще, диапазон [i,j) относится к элементам в структуре данных, начиная с элемента, указываемого i, и до элемента, но не включая его, указываемого j. Диапазон [i,j) допустим, если и только если j доступен из i. Результат применения алгоритмов библиотеки к недопустимым диапазонам не определён.

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

В следующих разделах мы принимаем: a и b - значения X, n - значение типа расстояния Distance, u, tmp и m - идентификаторы, r и s - леводопустимые (lvalues) значения X, t - значение значимого типа T.

Итераторы ввода (Input iterators)

Класс или встроенный тип X удовлетворяет требованиям итератора ввода для значимого типа T, если справедливы следующие выражения:

Таблица 2. Требования итератора ввода

выражение возвращаемый тип семантика исполнения утверждение/примечание состояние до/после X(a) - -  X(a) - копия a. примечание: предполагается деструктор. X u(a); X u = a; - -  после: u - копия a. u = a X& -  после: u - копия a. a == b обратимый в bool -  если a - копия b, тогда a == b возвращает true. == - это отношение эквивалентности в области действия ==. a!= b обратимый в bool !(a == b) -  *a обратимый в T -  до: a - разыменовываемое. если a - копия b, то *a эквивалентно *b. ++r X& - до: r - разыменовываемое. после: r - разыменовываемое или r - законечное. void r++ void void ++r -  *r++ Т {X tmp = r; ++r; return tmp;} - ПРИМЕЧАНИЕ. Для итераторов ввода нет никаких требований на тип или значение r++ кроме требования, чтобы *r++ работал соответственным образом. В частности, r == s не подразумевает, что ++r == ++s. (Равенство не гарантирует свойство замены или ссылочной прозрачности.) Что касается ++r, то нет больше никаких требований на значения любых копий r за исключением того, что они могут быть безопасно уничтожены или присвоены. После выполнения ++r не требуется, чтобы были копии (предыдущего) r в области ==. Алгоритмы с итераторами ввода никогда не должны пытаться проходить через тот же самый итератор дважды. Они должны быть однопроходными (single pass) алгоритмами. Не требуется, чтобы значимый тип T был леводопустимым типом (lvalue type). Эти алгоритмы могут использоваться с входными потоками как источниками входных данных через класс istream_iterator.

Итераторы вывода (Output iterators)

Класс или встроенный тип X удовлетворяет требованиям итератора вывода, если справедливы следующие выражения:

Таблица 3. Требования итератора вывода

выражение возвращаемый тип семантика исполнения утверждение/примечание состояние до/после X(a) - - *a = t эквивалентно *X(a) = t. примечание: предполагается деструктор. X u(a); X u = a; - - -  *a = t результат не используется - - ++r X& - - r++ Х или Х& - -  ПРИМЕЧАНИЕ. Единственное допустимое использование operator* - на левой стороне выражения присваивания. Присваивание через то же самое значение итератора происходит только однажды. Алгоритмы с итераторами вывода никогда не должны пытаться проходить через тот же самый итератор дважды. Они должны быть однопроходными (single pass) алгоритмами. Равенство и неравенство не обязательно определены. Алгоритмы, которые берут итераторы вывода, могут использоваться с выходными потоками для помещения в них данных через класс ostream_iterator, также как с итераторами вставки и вставляющими указателями. В частности, следующие два условия должны соблюдаться: --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.