Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Шаблоны. Стандартная библиотека шаблонов

Содержание

Понятие шаблонаШаблон (template) – средство программирования, которое позволяет создавать функции и классы, в которых тип задается в качестве параметра.В шаблоне функции определяется алгоритм, который может применяться к данным разных типов, а конкретный тип данных передается функции
Шаблоны. Стандартная библиотека шаблоновЛекция 4 Понятие шаблонаШаблон (template) – средство программирования, которое позволяет создавать функции и классы, Шаблоны функцийВ простейшем случае функция-шаблон определяется так:template  тип_ф имя_ф(параметры) { Пример функции-шаблона #include using namespace std;template void Myswap(T &x, T &y) {	T Шаблоны и перегруженные функцииФункции-шаблоны похожи на перегружаемые функции, но являются более ограниченными, Пример использования шаблона и перегруженной функции#include using namespace std;#include template T Summa(T Шаблоны классовСинтаксис шаблона класса:template class имя_класса   { /* описание класса*/};Параметры Пример класса-шаблонаtemplate class MyClass{	T1 i; T2 j;public: MyClass(T1 a, T2 b) {i=a; Библиотека стандартных шаблоновСтандартная библиотека С++ (Standart Template Library, STL) содержит шаблоны для КонтейнерыКонтейнеры – это объекты, предназначенные для хранения других однотипных объектов. Могут содержать Классификация контейнеровПоследовательные контейнеры обеспечивают хранение конечного количества однотипных объектов в виде непрерывной Контейнеры, определенные в STL ИтераторыИтераторы – это объекты, которые по отношению к контейнерам играют роль указателей.Для Основные операции с итераторамиРазыменование итератора: если р — итератор, то *р — Просмотр элементов контейнераЕсли i — некоторый итератор, то используется следующая форма цикла:for Способы создания объекта-последовательного контейнера1. Создать пустой контейнер:  vector vec1;  list Способы создания объекта-последовательного контейнера4. Создать контейнер и инициализировать его элементы значениями диапазона АлгоритмыАлгоритм – это функция, которая выполняет некоторые действия над содержимым контейнера.Чтобы использовать Пример использования векторов#include #include #include using namespace std;int main() {
Слайды презентации

Слайд 2 Понятие шаблона
Шаблон (template) – средство программирования, которое позволяет

Понятие шаблонаШаблон (template) – средство программирования, которое позволяет создавать функции и

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

качестве параметра.
В шаблоне функции определяется алгоритм, который может применяться к данным разных типов, а конкретный тип данных передается функции в виде параметра на этапе компиляции. Компилятор автоматически генерирует правильный код, соответствующий переданному типу.
Шаблоны классов обычно используются, когда класс предназначен для хранения специальным образом организованных данных и работы с ними.

Слайд 3 Шаблоны функций
В простейшем случае функция-шаблон определяется так:
template

Шаблоны функцийВ простейшем случае функция-шаблон определяется так:template тип_ф имя_ф(параметры) {

Type> тип_ф имя_ф(параметры) {
/* тело

функции */ }
Type – это имя фиктивного типа. Компилятор автоматически заменит его именем реального типа данных при создании конкретной версии функции. Вместо слова class может использоваться typename.
В угловых скобках указываются параметры шаблона через запятую. Их может быть несколько. Параметр может быть не только типом, но и просто переменной:
template void F() {…}

Слайд 4 Пример функции-шаблона
#include
using namespace std;
template

Пример функции-шаблона #include using namespace std;template void Myswap(T &x, T &y)

void Myswap(T &x, T &y) {
T a=x; x=y; y=a;

}
int main() {
int i=10, j=20;
char s1='a', s2='b';
Myswap(i, j);
cout<<"i="<

Слайд 5 Шаблоны и перегруженные функции
Функции-шаблоны похожи на перегружаемые функции,

Шаблоны и перегруженные функцииФункции-шаблоны похожи на перегружаемые функции, но являются более

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

тот же алгоритм для различных типов данных.
При необходимости функцию-шаблон можно перегрузить явным образом. При явной перегрузке компилятор не создает автоматическую версию функции для параметров указанных типов.
Вывод: если алгоритм обработки для разных типов одинаков, используют функции-шаблоны. Если нет – перегруженные функции.

Слайд 6 Пример использования шаблона и перегруженной функции
#include
using namespace

Пример использования шаблона и перегруженной функции#include using namespace std;#include template T

std;
#include
template T Summa(T x, T y)

{
T S; S=x+y; return S; }
char * Summa(char *s1, char *s2) {
strcat(s1, s2); return s1;}
int main() {
float i=3.2, j=2.7;
char s1[80]="Hello "; char s2[]="World!";
cout< cout< return 0; }

Слайд 7 Шаблоны классов
Синтаксис шаблона класса:
template class имя_класса

Шаблоны классовСинтаксис шаблона класса:template class имя_класса  { /* описание класса*/};Параметры

{ /* описание класса*/};
Параметры перечисляются через запятую. Параметрами

могут быть типы (сlass Ttype), шаблоны и переменные.
Если метод описывается вне шаблона, его заголовок должен иметь вид:
template <описание_параметров_шаблона>
возвр_тип имя_класса <параметры _шаблона>::
имя_функции (список_параметров_функции)
Создание экземпляра класса:
имя_класса <аргументы> объект[(параметры_конструктора)];
Аргументы – значения с которым будет работать класс.

Слайд 8 Пример класса-шаблона
template class MyClass{
T1

Пример класса-шаблонаtemplate class MyClass{	T1 i; T2 j;public: MyClass(T1 a, T2 b)

i; T2 j;
public: MyClass(T1 a, T2 b) {i=a; j=b;}
void

Show();
};
template
void MyClass ::Show()
{cout<int main() {
MyClass ob1(22, 3.5);
MyClass ob2("text1", "text2");
ob1.Show(); ob2.Show();
return 0;
}

Слайд 9 Библиотека стандартных шаблонов
Стандартная библиотека С++ (Standart Template Library,

Библиотека стандартных шаблоновСтандартная библиотека С++ (Standart Template Library, STL) содержит шаблоны

STL) содержит шаблоны для хранения и обработки данных.
Основные элементы

библиотеки:
контейнеры;
итераторы;
алгоритмы;
функциональные объекты.

Слайд 10 Контейнеры
Контейнеры – это объекты, предназначенные для хранения других

КонтейнерыКонтейнеры – это объекты, предназначенные для хранения других однотипных объектов. Могут

однотипных объектов.
Могут содержать простые объекты (целые, вещественные, символьные

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


Слайд 11 Классификация контейнеров
Последовательные контейнеры обеспечивают хранение конечного количества однотипных

Классификация контейнеровПоследовательные контейнеры обеспечивают хранение конечного количества однотипных объектов в виде

объектов в виде непрерывной последовательности.
К базовым последовательным контейнерам

относятся векторы (vector), списки (list) и двусторонние очереди (deque).
Специализированные контейнеры (или адаптеры контейнеров) реализованы на основе базовых. Это стеки (stack), очереди (queue) и очереди с приоритетами (priority_queue.
Ассоциативные контейнеры обеспечивают быстрый доступ к данным по ключу. Эти контейнеры построены на основе сбалансированных деревьев. Есть пять типов ассоциативных контейнеров: словари (map), словари с дубликатами (multimap), множества (set), множества с дубликатами (multiset) и битовые множества (bitset).

Слайд 12 Контейнеры, определенные в STL

Контейнеры, определенные в STL

Слайд 13 Итераторы
Итераторы – это объекты, которые по отношению к

ИтераторыИтераторы – это объекты, которые по отношению к контейнерам играют роль

контейнерам играют роль указателей.
Для всех контейнерных классов STL определен

тип iterator, но его реализация в разных классах разная. Поэтому при объявлении объектов типа iterator всегда указывается область видимости:
vector :: iterator i;
list :: iterator j;

Слайд 14 Основные операции с итераторами
Разыменование итератора: если р —

Основные операции с итераторамиРазыменование итератора: если р — итератор, то *р

итератор, то *р — значение объекта, на который он

ссылается.
Присваивание одного итератора другому.
Сравнение итераторов на равенство и неравенство (== и !=).
Перемещение его по всем элементам контейнера с помощью префиксного (++р) или постфиксного (р++) инкремента.

Слайд 15 Просмотр элементов контейнера
Если i — некоторый итератор, то

Просмотр элементов контейнераЕсли i — некоторый итератор, то используется следующая форма

используется следующая форма цикла:
for (i = first ; i

!= last; ++i)
first — значение итератора, указывающее на первый элемент в контейнере.
last — значение итератора, указывающее на воображаемый элемент, который следует за последним элементом контейнера.
Операция сравнения < здесь заменена на операцию !=, поскольку операции < и > для итераторов в общем случае не поддерживаются.
Для всех контейнерных классов определены унифицированные методы begin() и end(), возвращающие адреса first и last соответственно.

Слайд 16 Способы создания объекта-последовательного контейнера
1. Создать пустой контейнер:

Способы создания объекта-последовательного контейнера1. Создать пустой контейнер: vector vec1; list list1;2.

vector vec1;
list list1;
2. Создать контейнер заданного размера

и инициализировать его элементы значениями по умолчанию:
vector vec1(100);
list list1(20);
3. Создать контейнер заданного размера и инициализировать его элементы указаннымзначением:
vector vec1(100, "Hello!");
deque decl(300, -1);

Слайд 17 Способы создания объекта-последовательного контейнера
4. Создать контейнер и инициализировать

Способы создания объекта-последовательного контейнера4. Создать контейнер и инициализировать его элементы значениями

его элементы значениями диапазона [first, last) элементов другого контейнера:

int arr[7] = {15, 2, 19, -3, 28, 6, 8};
vector v1(arr, arr + 7);
list lst(v1.beg() + 2, vl.end());
5. Создать контейнер и инициализировать его элементы значениями элементов другого однотипного контейнера:
vector v1;
// добавить в vl элементы
vector v2(vl);


Слайд 18 Алгоритмы
Алгоритм – это функция, которая выполняет некоторые действия

АлгоритмыАлгоритм – это функция, которая выполняет некоторые действия над содержимым контейнера.Чтобы

над содержимым контейнера.
Чтобы использовать обобщенные алгоритмы нужно к программе

подключить заголовочный файл .
В списках параметров всех алгоритмов первые два параметра задают диапазон обрабатываемых элементов в виде полуинтервала [ first , last), где
first — итератор, указывающий на начало диапазона,
last — итератор, указывающий на выход за границы диапазона.

  • Имя файла: shablony-standartnaya-biblioteka-shablonov.pptx
  • Количество просмотров: 118
  • Количество скачиваний: 0