Практикум на ЭВМ технология программирования в среде С++




Скачать 409.93 Kb.
Название Практикум на ЭВМ технология программирования в среде С++
страница 10/12
Дата публикации 31.05.2014
Размер 409.93 Kb.
Тип Документы
literature-edu.ru > Курсовая работа > Документы
1   ...   4   5   6   7   8   9   10   11   12

6.2Стандартная библиотека шаблонов языка C++


Во многих современных языках программирования, таких как язык C++, предусмотрены стандартные классы, которые используются наиболее широко. В язы­ке C++ большинство таких классов определено в стандартной библиотеке шаблонов (Standard Template Library — STL). Эта библиотека содержит огромное количество шаблонных классов, которые можно применять для реализации любых типов данных.

Стандартная библиотека шаблонов содержит шаблонные классы для некоторых широко распространенных абстрактных типов данных

Элементы стандартной библиотеки шаблонов разделяются на три вида: контейнеры, алго­ритмы и итераторы. Контейнеры (containers) — это объекты, внутри которых содержатся другие объекты. Например, список — типичный контейнер. К контейнерам применяются алгоритмы, например, алгоритм сортировки списка. Итераторы (iterators) осуществляют просмотр содержимого контейнеров.

6.2.1Контейнеры


В основе контейнеров лежит понятие шаблонного класса (class template), принятое в языке C++. Шаблоны позволяют разрабатывать класс, не уточняя типы используемых в нем данных до момента его применения. В шаблонах тип данного задается в качестве шаблонного параметра (data-type parameter). Перед определением класса указываются ключевые слова template <class Т>. Здесь параметр Т задает тип данных, указанных клиентом. Рассмотрим пример простого шаблонного класса.

template class MyClass

{

public:

MyClass();

MyClass (T initialData) ;

void setData(T newData);

T getData() ;

private:

T theData;

};

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

int main()

{

MyClass a; //Объявлен класс сполем int

MyClass b(5.4); //Объявлен класс сполем double
a.setData(5);

cout <<.. b.getdata() << endl;

}

Реально, в объявлениях объектов а и b задается тип переменной theData, являющейся членом (полем) класса MyClass.

Фактические шаблоны из библиотеки STL используют два шаблонных параметра. Первый из них представляет собой обычный параметр, задающий тип данных, содержащихся в контейнере. Второй параметр называется распределителем (allocator). В большинстве случаев он используется по умолчанию и является объектом класса allocator. По этой причине в дальнейшем второй параметр игнорируется.

6.2.2Итераторы


Итераторы — это обобщенные указатели. Они дают возможность перемещаться по объектам, содержащимся в контейнере, совершенно аналогично тому, как обычный указатель позволяет перемещаться по элементам списка. Предположим, что итератор называется curr. В этом, случае получить доступ к объекту, на который ссылается итератор curr , можно с помощью выражения *curr.

Итераторы, предусмотренные в библиотеке STL, разделяются на пять категорий, в зависимости от операций, которые можно выполнить над итератором. Шаблонные контейнерные классы, являются двунаправленными итераторами (bidirectional iterator). Такие итераторы позволяют перемещаться по контейнеру в обоих направлениях. Для перемещения на следующий элемент контейнера используется оператор инкрементации

+ + curr;

Для перемещения на предыдущий элемент контейнера используется оператор декрементации

--curr;

В контейнерных классах обычно содержатся, по крайней мере, две функции. Первая из них инициализирует итератор ссылкой на первый элемент контейнера.

iterator begin();

Вторая функция возвращает значение, которое сообщает, достигнут ли конец контейнера.

iterator end();

Это же значение возвращается функцией begin, если список пуст (оно не равно константе NULL).

list myList;

list::iterator curr;
// В данный момент список пуст; ■

//итератор ссылается на начало списка myList

curr = myList.begin();

// Пуст ли список?

if (curr == myList.end())

cout << "Список пуст" << endl;

// Вставить в список myList пять элементов

for (int j=0;j<5;j++)

//Поместить элемент j в начало списка

curr = myList.insert(curr, j);
1   ...   4   5   6   7   8   9   10   11   12

Похожие:

Практикум на ЭВМ технология программирования в среде С++ icon Практикум на ЭВМ среда программирования и отладка программ
Рыков В. И. Среда Microsoft Visual C++ и отладка программ. Технология работы с языком С++. /Издание Башкирского ун-та. Уфа 2006....
Практикум на ЭВМ технология программирования в среде С++ icon Основы информатики и вычислительной техники системы программирования
Рассматриваются основные понятия языков программирования. Излагаются процедурный и объектный подходы в программировании. Более подробно...
Практикум на ЭВМ технология программирования в среде С++ icon Рабочая программа по курсу «основы Программирования на языке ассемблер»
Программа предназначена для обучения основам программирования на языке низкого уровня Ассемблере учащихся средних школ, учреждений...
Практикум на ЭВМ технология программирования в среде С++ icon Программа учебной дисциплины «Управление данными»
«Математика», «Информатика», «Программирование на языках высокого уровня», «Дискретная математика», «Объектно-ориентированное программирование»,...
Практикум на ЭВМ технология программирования в среде С++ icon Практикум по спортивной психологии Санкт-Петербург
...
Практикум на ЭВМ технология программирования в среде С++ icon Реферат по теме: "Строение персональных компьютеров ibm pc"
Эвм и мини ЭВМ. Это стало предметом серьезного беспокойства фирмы ibm (International Bussines Machines Corporation) ведущей компании...
Практикум на ЭВМ технология программирования в среде С++ icon Конспект лекций доцента и. А. Волковой по курсу «системы программирования»
Система программирования – комплекс программных инструментов и библиотек, который поддерживает создание и существование программного...
Практикум на ЭВМ технология программирования в среде С++ icon План лекции: Задачи, решаемые вычислительными центрами Структура...
Создание вычислительных центров является способом повышения эффективности работы ЭВМ. Вычислительный центр объединяет технику различных...
Практикум на ЭВМ технология программирования в среде С++ icon Ментальное моделирование как технология понимания текста на примере книг Карлоса Кастанеды
Ваша собственная ментальная программа. Поэтому вполне может случиться, что некоторые ментальные программы не могут быть отмоделированы...
Практикум на ЭВМ технология программирования в среде С++ icon Практикум по когнитивной терапии
М15 Практикум по когнитивной терапии: Пер с англ. — Спб.: Речь, 2001. — 560 с. Isbn 5-9268-0036-6
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции