🗊 Презентация Стандартный контейнер Vector.Стандартный контейнер Deque

Нажмите для полного просмотра!
Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №1 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №2 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №3 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №4 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №5 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №6 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №7 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №8 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №9 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №10 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №11 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №12 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №13 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №14 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №15 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №16 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №17 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №18 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №19 Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №20

Вы можете ознакомиться и скачать презентацию на тему Стандартный контейнер Vector.Стандартный контейнер Deque. Доклад-сообщение содержит 20 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Подготовила Пономарёва Анастасия Группа 271 ПИ
Описание слайда:
Подготовила Пономарёва Анастасия Группа 271 ПИ

Слайд 2


Стандартный контейнер Vector Стандартный контейнер Vector Стандартный контейнер Deque Различия между вектором и очередью Выбор между вектором и...
Описание слайда:
Стандартный контейнер Vector Стандартный контейнер Vector Стандартный контейнер Deque Различия между вектором и очередью Выбор между вектором и очередью Использованная литература

Слайд 3


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

Слайд 4


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

Слайд 5


#include #include using namespace std; int main(int argc, char* argv[]) { vector v1; // вектор с членами типа int vector v2; // вектор с членами типа...
Описание слайда:
#include #include using namespace std; int main(int argc, char* argv[]) { vector v1; // вектор с членами типа int vector v2; // вектор с членами типа double vector v3; // вектор с членами типа bool vector v4; // вектор с членами типа string return EXIT_SUCCESS; } vector matrix; // вектор векторов

Слайд 6


#include #include using namespace std; int main(int argc, char* argv[]) { vector v1; // initially empty vector v2(5); // 5 elements, initialized to 0...
Описание слайда:
#include #include using namespace std; int main(int argc, char* argv[]) { vector v1; // initially empty vector v2(5); // 5 elements, initialized to 0 vector v3(10, 1); // 10 elements, initialized to 1 vector v4(v3); // v4 is a copy of v3 return EXIT_SUCCESS; }

Слайд 7


(constructor) Конструктор вектора (public member function) (destructor) Деструктор вектора(public member function) operator= Копирование содержимого...
Описание слайда:
(constructor) Конструктор вектора (public member function) (destructor) Деструктор вектора(public member function) operator= Копирование содержимого вектора(public member function) (constructor) Конструктор вектора (public member function) (destructor) Деструктор вектора(public member function) operator= Копирование содержимого вектора(public member function) Итераторы: begin возвращает итератор начала(public member type) end возвращает итератор конца (public member function) rbegin возвращает противоположный итератор для противоположного конца (public member function) rend возвращает противоположный итератор для противоположного конца(public member function); Емкость: size возвращает размер вектора (public member function) max_size максимальный размер (public member function) resize изменение размера(public member function) capacity возвращает объем занимаемой памяти (public member function) empty проверяет, не пустой ли вектор (public member function) reserve запрос об изменении объема(public member function)

Слайд 8


Доступ к элементам: Доступ к элементам: operator[] доступ к элементам(public member function) at доступ к элементу (public member function) front...
Описание слайда:
Доступ к элементам: Доступ к элементам: operator[] доступ к элементам(public member function) at доступ к элементу (public member function) front доступ к первому элементу (public member function) back доступ к последнему элементу (public member function) Модификаторы: assign присвоить содержание вектора(public member function) push_back добавить элемент в конец(public member function) pop_back удалить последний элемент (public member function) insert добавить элемент(public member function) erase стереть элементы (public member function) swap обменять содержимое контейнера (public member function) clear очистить содержимое контейнера (public member function) Распределение: get_allocator вернуть модель распределения памяти (public member function)

Слайд 9


// Пустой вектор // Пустой вектор vector v; // Добавление элементов в конец for (int i = 0; i < 5; i++) { v.push_back(i); cout
Описание слайда:
// Пустой вектор // Пустой вектор vector v; // Добавление элементов в конец for (int i = 0; i < 5; i++) { v.push_back(i); cout

Слайд 10


Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №10
Описание слайда:

Слайд 11


Deque – акроним для double-ended queue. Deque – акроним для double-ended queue. Очереди с двухсторонним доступом представляют собой разновидность...
Описание слайда:
Deque – акроним для double-ended queue. Deque – акроним для double-ended queue. Очереди с двухсторонним доступом представляют собой разновидность последовательных контейнеров и чем-то схожи с векторами и связными списками. Как и вектор, это тип контейнера поддерживает произвольный доступ к элементам. Если говорить о размещении в памяти, то двухсторонние очереди могут размещаться в нескольких сегментах памяти, не обязательно в смежных. Это приводит к снижению скорости доступа к элементам.

Слайд 12


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

Слайд 13


Стандартный контейнер Vector.Стандартный контейнер Deque, слайд №13
Описание слайда:

Слайд 14


assign assign Syntax: void assign( input_iterator start, input_iterator end); void assign( Size num, const TYPE &val ); Объявление очереди с...
Описание слайда:
assign assign Syntax: void assign( input_iterator start, input_iterator end); void assign( Size num, const TYPE &val ); Объявление очереди с элементами между итераторами начала и конца. at Syntax: reference at( size_type pos ); Возвращает ссылку на элемент по указанной позиции pos. back Syntax: reference back(); Возвращает ссылку на конец очереди. begin Syntax: iterator begin(); Возвращает итератор первого элемента очереди. clear Syntax: void clear(); Удаление всех элементов из очереди. empty Syntax: bool empty(); Возвращает true, если очередь не содержит элементов. В противном случае возвращает false. end Syntax: iterator end(); Возвращает итератор последнего элемента очереди. erase Syntax: iterator erase( iterator pos ); Функция стирает элемент на указанной позиции. front Syntax: reference front(); Возвращает ссылку на начало очереди.

Слайд 15


insert insert Syntax: iterator insert( iterator pos, size_type num, const TYPE &val ); Вставка num копий величиныval после элемента на позиции pos....
Описание слайда:
insert insert Syntax: iterator insert( iterator pos, size_type num, const TYPE &val ); Вставка num копий величиныval после элемента на позиции pos. max_size Syntax: size_type max_size(); Возвращает максимальное число элементов, которые может содержать очередь. pop_back Syntax: void pop_back(); Удаление последнего элемента очереди. pop_front Syntax: void pop_front(); Удаление первого элемента очереди. push_back Syntax: void push_back( const TYPE &val ); Добавление элемента в конец очереди. push_front Syntax: void push_front( const TYPE &val ); Добавление элемента в начало очереди. rbegin Syntax: reverse_iterator rbegin(); Возвращает обратный итератор на конец очереди. rend Syntax: reverse_iterator rend(); Возвращает обратный итератор на начало очереди. resize Syntax: void resize( size_type num, TYPE val ); Изменени количества элементов очереди на num, добавляя в очередь элементы, равные val. size Syntax: size_type size(); Возвращает размер очереди. swap Syntax: void swap( deque &target ); Замена элементов на double.

Слайд 16


// очередь с десятью '1' в ней // очередь с десятью '1' в ней deque dq( 10, 1 ); //создание итератора очереди ::iterator iter; // добавляет в конец...
Описание слайда:
// очередь с десятью '1' в ней // очередь с десятью '1' в ней deque dq( 10, 1 ); //создание итератора очереди ::iterator iter; // добавляет в конец dq.push_back (8); // добавляет в начало dq.push_front (9); // удаляет первый элемент dq.pop_front (); // вывод элементов очереди for( iter = dq.begin(); iter != dq.end(); iter++ ) { cout

Слайд 17


Vector и Deque очень схожи, но существует несколько различий: Vector и Deque очень схожи, но существует несколько различий: 1) в deque можно...
Описание слайда:
Vector и Deque очень схожи, но существует несколько различий: Vector и Deque очень схожи, но существует несколько различий: 1) в deque можно добавлять элементы в начало. 2) Главное отличие: размещение в памяти(!) vector всегда будет размещаться в памяти последовательно. При добавлении элементов объем памяти увеличивается в 2 раза ( принято в Visual C++ 6.0). Этот запас необходим. Когда есть запасная память, элемент пишется туда. Когда ее нет, выделяется непрерывный кусок памяти достаточный для n*K элементов, где K – коэффицент, который должен быть меньше, чем (1+sqrt(5))/2. В него копируются предыдущие n, добавляется наш новый элемент, старый кусок размером n освобождается. Если бы запаса не было, то память бы выделялась каждый раз при добавлении нового элемента, что неэффективно. Из-за последовательного размещения в памяти произвольный доступ к элементам очень быстрый. deque размещается в памяти сегментированно и обычно реализуется как массив массивов. Поэтому доступ к элементам будет помедленнее. Но зато при добавлении элементов не будет возникать тех проблем, что имеют место у vector с выделением последовательных кусков памяти.

Слайд 18


1. deque выполняет функции insert() and erase() за постоянное 0 (1) время в начале контейнера,а вектор – нет. Вектор выполняет функции capacity(),...
Описание слайда:
1. deque выполняет функции insert() and erase() за постоянное 0 (1) время в начале контейнера,а вектор – нет. Вектор выполняет функции capacity(), back(), clear(), destroy(), value(), pop_back(). 1. deque выполняет функции insert() and erase() за постоянное 0 (1) время в начале контейнера,а вектор – нет. Вектор выполняет функции capacity(), back(), clear(), destroy(), value(), pop_back(). 2. deque проще в использовании и более эффективен для добавления новых элементов, чем vector. Есть только две функции, которые определены для vector и не определены для deque -capacity() and reserve(). 3. Из-за страничной организации памяти deque реализует быстрее vector’a оператор push_back() 4. Функция выделения дополнительной памяти reserve() обоими контейнерами при фиксированном количестве элементов выполняется приблизительно за одно время. Был проведен эксперимент по вставке в deque и vector 9874 элементов средней длины1755.85. Получены следующие результаты:

Слайд 19


Если планируете добавлять много новых элементов или хотите иметь доступ к началу контейнера- используй deque. Если планируете добавлять много новых...
Описание слайда:
Если планируете добавлять много новых элементов или хотите иметь доступ к началу контейнера- используй deque. Если планируете добавлять много новых элементов или хотите иметь доступ к началу контейнера- используй deque. В связи со страничным выделением памяти для deque добавление элементов в нем осуществляется быстрее. Если планируете работать с произвольными элементами контейнера, и нужен быстрый доступ к ним - используйте vector В частности можно применить vector::at() . Из-за последовательного размещения в памяти произвольный доступ к элементам очень быстрый.

Слайд 20


1. Р. Лафоре «Объектно-ориентированное программирование в С++», 4-е издание. 1. Р. Лафоре «Объектно-ориентированное программирование в С++», 4-е...
Описание слайда:
1. Р. Лафоре «Объектно-ориентированное программирование в С++», 4-е издание. 1. Р. Лафоре «Объектно-ориентированное программирование в С++», 4-е издание. 2. Бьерн Страуструп «Язык программирования С++», специальное издание. 3. Материалы сайта 4. Материалы практических занятий по предметы «Алгоритмы и структуры данных». 5. Mark Allen Weiss “Data Structures and Problem Solving Using C++”. 6. Материалы сайта



Похожие презентации
Mypresentation.ru
Загрузить презентацию