Заголовочный файл iostream.h содержит определения классов, которые вы можете проанализировать, чтобы лучше понять потоковый ввод/вывод.
Используя метод cout.width, ваши программы могут управлять шириной вывода.
Используя метод cout.fill, ваши программы могут заменить пустые выходные символы (табуляцию и пробелы) некоторым определенным символом.
Для управления количеством цифр, выводимых выходным потоком cout для значений с плавающей точкой, ваши программы могут использовать метод cout.setprecision.
Для вывода и ввода по одному символу за один раз ваши программы могут использовать потоковые методы cout.put и cin.get.
Используя метод cin.getline, ваши программы могут вводить целую строку за один раз.
Форматированный ввод/вывод
Для того чтобы организовать форматированный ввод и вывод , аналогичный тому , что предоставляют пользователю функции printf() и scanf() в языке C++ используются два способа.
Первый состоит в применении функций членов - класса ios.
При втором способе употребляется специальный вид функций, называемых манипуляторами.
Пример вывода и числа:
#include <iostream.h>
void main(void)
{cout << "Мое любимое число равно " << 1001;}
Пример форматирования:
#include <iostream.h>
#include <iomanip.h>
void main(void)
{ cout << "Мое любимое число" << setw(3) << 1001 << endl; cout << "Мое любимое число" << setw (4) << 1001 << endl; cout << "Мое любимое число" << setw (5) << 1001 << endl; cout << "Мое любимое число" << setw(6) << 1001 << endl;}
Подобным образом метод cout.width позволяет вам указать минимальное количество символов, которое будет использовать сои/для вывода следующего значения.
Подпрограмма обработки прерывания от клавиатуры сканирует код клавиши. Если это цифровая клавиша, то записывает его в буфер, запускает таймер ожидания нажатой клавиши, проверяет, не переполнился ли буфер, рассчитанный на 6 цифровых клавиш. Если буфер переполнился, то подпрограмма очищает буфер. Если нажата клавиша #, то буфер очищается. Если нажата *, то подпрограмма проверяет количество нажатых клавиш (не менее 3), и производит поиск кода в EEPROM. Если код не найден, то буфер очищается. Очистка буфера сопровождается длинным писком и желтым светодиодом. Если код найден, то если это мастер-код выполняется подпрограмма входа в режим программирования, если код доступа, то открывается управляющее реле. Время открывания читается из EEPROM.
2)
Стандартная библиотека шаблонов STL (англ. standard template library) — набор шаблонов функций и классов в языке C++, включающий в себя различные контейнеры данных (список, очередь, множество, отображение, хэштаблица, очередь с приоритетами) и базовые алгоритмы (сортировка, поиск).
Контейнеры
STL контейнеры делятся на последовательные: vector, deque, list и ассоциативные: set, multiset, map, multimap.
Контейнер |
Описание |
| |
последовательныее контейнеры (упорядоченные списки) |
| ||
Vector |
C-подобный динамический массив произвольного доступа с автоматическим изменением размера при добавлении/удалении элемента. Добавление-удаление элемента в конец vector занимает амортизированное О(1) время, та же операция в начале или середине vector- О(n). Существует специальный вариант vector для типа bool, уменьшающий потребную память за счет битового хранения . |
| |
List |
Двух-связанный список, элементы которого в произвольных кусках памяти, в отличие от непрерывной памяти vector. Медленный поиск и доступ (О(n)), быстрая вставка и удаление (О(1)). |
| |
Deque |
vector с возможностью быстрой вставки-удаления не только в конец, но и в начало. |
| |
basic_string |
контейнер заточенный на обработку строк - хранит в памяти элементы в последовательно, что даёт быстрый доступ ко всей последовательности |
| |
ассоциативные контейнеры (неупорядоченные списки) |
| ||
Set |
сортированнoe множество, такой что вставка/удаление нового элемента не приводит к компрометации итератора указывающего на него. Обеспечивает стандартные операции над множествами типа объединения, пересечения, вычитания.Тип элементов set должен реализовывать оператор сравнения operator <. Реализован на основе технологии само-балансирующего поиска по двоичному дереву. |
| |
Multiset |
то же что и set, кроме того позволяет хранить одинаковые элементы. |
| |
Map |
сортированный ассоциативный массив пар элементов, позволяющий установить соответствие между элементами пары. Один из элементов пары принято называть ключем, другой - величиной. При этом тип ключа должен реализовывать оператор сравнения <, либо перегружать функцию сравнения. |
| |
multimap |
то же что и map, плюс возможность хранить разные величины под одним и тем же ключем. |
| |
hash_set hash_multiset hash_map hash_multimap |
подобны set, multiset, map, multimap, соответственно, но реализованы на основе хеш таблицы. Ключи не сортированы, для типа ключа должна существовать хэш функция. Эти контейнеры не входят в стандарт C++, однако включены в SGI STL расширение, и в ряд распространённых библиотек, в частности в GNU C++ Library. |
| |
другие типы контейнеров |
| ||
Bitset |
Похож на vector фиксированного размера. Предназначен для хранения последовательностей битов. Минимизирован по размеру памяти. |
| |
Valarray |
C-подобный массив в духе vector. Разработан для скоростных численных расчетов, оптимизирован для векторных супер компьютеров. Пригоден для скалярных процессоров работающих на основе идеологии SIMD |
|
Итератор (англ. iterator) — объект, предназначенный для предоставления доступа к элементам некоторой последовательности. В таких языках, как Оберон и Глагол, называется также бегуно́к и представлен как тип данных. В простейшем случае итератором в низкоуровневых языках является указатель.
Использование итераторов в обобщённом программировании позволяет реализовать универсальные алгоритмы работы с контейнерами или любыми последовательностями.
3) Наследование – это свойство объекта, которое заключается в том, что характеристики одного объекта (объекта-предка) могут передаваться другому объекту (объекту-потомку) без их повторного описания. Наследование упрощает описание объектов.