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

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


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

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

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

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

Презентация на тему Алгоритми. Контейнери в STL. (Лекція 2)

Содержание

План лекціїЕлементи STLСтекЧерга
АлгоритмиЛекція 2Контейнери в STL План лекціїЕлементи STLСтекЧерга Елементи STLСтандартна бібліотека шаблонів (Standard Template Library; STL) —бібліотека для С++, що містить набір алгоритмів, контейнерів, Архітектура STL для чайників Архітектура STL для продвинутих Vector VectorВектор – послідовний контейнер який використовується для зберігання елементів, кількість яких невідома.vector ListДвозв’язний список призначений для послідовного зв’язку елементів. Використовується у випадку коли нема Liststd::list mylist;for (int i=1;i DequeДек – це двостороння черга динамічного розміру. Таким чином елементи можуть додаватись Dequestd::deque mydeque;for (int i=1; i Set/MultisetSet використовують для того, щоб зберігати тільки унікальні елементи. Відповідно multiset передбачає Set/Multisetstd::set myset;std::set::iterator it;for (int i=1; i Map/MultimapMap зберігає пару , є зручним для зберігання таких пар даних у Map/Multimap std::map mymap; // first insert function version (single parameter): mymap.insert ( StackКонтейнер, що організований по принципу LIFO – last in first out. http://www.cplusplus.com/reference/stack/stack/ QueueКонтейнер, що організований по принципу FIFO – first in first out. http://www.cplusplus.com/reference/queue/queue/ Priority queueЧерга з пріоритетом має таку ж поведінку як і звичайна черга Priority queue std::priority_queue mypq; mypq.push(30); mypq.push(100); mypq.push(25); mypq.push(40); std::cout Вибір контейнера Порівняльні характеристики контейнерів Реалізація StackНеобхідно реалізувати стек який би містив основні операції для роботи:stack();push();pop();top();empty(); Реалізація QueueНеобхідно реалізувати чергу яка б містила основні операції для роботи:queue();push();pop();front();empty(); Реалізація List Домашнє завдання має містити наступні методи для роботи із списком:1) Домашнє завдання:Реалізувати однозв’язний/двозв’язний список (попередній слайд)Розв’язати задачу «Атестація»
Слайды презентации

Слайд 2 План лекції
Елементи STL
Стек
Черга

План лекціїЕлементи STLСтекЧерга

Слайд 3 Елементи STL
Стандартна бібліотека шаблонів (Standard Template Library; STL) —бібліотека для С++, що

Елементи STLСтандартна бібліотека шаблонів (Standard Template Library; STL) —бібліотека для С++, що містить набір алгоритмів,

містить набір алгоритмів, контейнерів, засобів доступу до їхнього вмісту

і різних допоміжних функцій.


Слайд 4 Архітектура STL для чайників

Архітектура STL для чайників

Слайд 5 Архітектура STL для продвинутих

Архітектура STL для продвинутих

Слайд 6 Vector

Vector

Слайд 7 Vector
Вектор – послідовний контейнер який використовується для зберігання

VectorВектор – послідовний контейнер який використовується для зберігання елементів, кількість яких

елементів, кількість яких невідома.

vector myVector; // Порожній вектор із

елементів типу int vector myVector(10); // Вектор із 10-и елементів типу float vector myVector(5, ' '); // Вектор містить 5 пробілів
int n = 10;
vector myVector(n); // Вектор із 10-и елементів типу T
myVector.push_back (3); // Запис числа 3 в кінець вектора


http://www.cplusplus.com/reference/vector/vector/


Слайд 8 List
Двозв’язний список призначений для послідовного зв’язку елементів. Використовується

ListДвозв’язний список призначений для послідовного зв’язку елементів. Використовується у випадку коли

у випадку коли нема потреби у великій кількості проходів

по всьому набору елементів.


Слайд 9 List
std::list mylist;

for (int i=1;i

Liststd::list mylist;for (int i=1;i

std::cout



Слайд 10 Deque
Дек – це двостороння черга динамічного розміру. Таким

DequeДек – це двостороння черга динамічного розміру. Таким чином елементи можуть

чином елементи можуть додаватись та видалятись як в кінці

так і в початку деку.

empty


Слайд 11 Deque
std::deque mydeque;

for (int i=1; i

Dequestd::deque mydeque;for (int i=1; i

= mydeque.begin();
while (it != mydeque.end() )
std::cout

' ' << *it++;


http://www.cplusplus.com/reference/deque/deque/

Слайд 12 Set/Multiset
Set використовують для того, щоб зберігати тільки унікальні

Set/MultisetSet використовують для того, щоб зберігати тільки унікальні елементи. Відповідно multiset

елементи. Відповідно multiset передбачає наявність повторень. Головним достоїнством цих

контейнерів є те що вони містять уже відсортований набір даних.

Слайд 13 Set/Multiset
std::set myset;
std::set::iterator it;

for (int i=1; i

Set/Multisetstd::set myset;std::set::iterator it;for (int i=1; i

// set: 10 20 30 40 50

it=myset.find(20);
myset.erase (it);

for

(it=myset.begin(); it!=myset.end(); ++it)
std::cout << ' ' << *it;

OUTPUT
myset contains: 10 30 40 50

http://www.cplusplus.com/reference/set/set/
http://www.cplusplus.com/reference/set/multiset/

Слайд 14 Map/Multimap
Map зберігає пару , є зручним для

Map/MultimapMap зберігає пару , є зручним для зберігання таких пар даних

зберігання таких пар даних у яких один з елементів

є число, а інший – довільний.
Варто зазначити що Map/Multimap як і Set/Multiset зберігають уже відсортований набір даних.

http://www.cplusplus.com/reference/map/map/
http://www.cplusplus.com/reference/map/multimap/


Слайд 15 Map/Multimap
std::map mymap;
// first insert function version

Map/Multimap std::map mymap; // first insert function version (single parameter): mymap.insert

(single parameter):
mymap.insert ( std::pair('a',100) );
mymap.insert ( std::pair(‘b',300)

);
mymap.insert ( std::pair('z',200) );

std::pair::iterator,bool> ret;
ret = mymap.insert ( std::pair('z',500) );
if (ret.second==false) {
std::cout << "element 'z' already existed";
std::cout << " with a value of " << ret.first->second << '\n';
}
// second insert function version (range insertion):
std::map anothermap;
anothermap.insert(mymap.begin(),mymap.find('c'));
// showing contents:
std::cout << "mymap contains:\n";
for (it=mymap.begin(); it!=mymap.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';
std::cout << "anothermap contains:\n";
for (it=anothermap.begin(); it!=anothermap.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';

OUTPUT:
element 'z' already existed with a value of 200
mymap contains:
a => 100
b => 300
c => 400
z => 200
anothermap contains:
a => 100
b => 300


Слайд 16 Stack
Контейнер, що організований по принципу LIFO – last

StackКонтейнер, що організований по принципу LIFO – last in first out. http://www.cplusplus.com/reference/stack/stack/

in first out.







http://www.cplusplus.com/reference/stack/stack/


Слайд 17 Queue
Контейнер, що організований по принципу FIFO – first

QueueКонтейнер, що організований по принципу FIFO – first in first out. http://www.cplusplus.com/reference/queue/queue/

in first out.








http://www.cplusplus.com/reference/queue/queue/


Слайд 18 Priority queue
Черга з пріоритетом має таку ж поведінку

Priority queueЧерга з пріоритетом має таку ж поведінку як і звичайна

як і звичайна черга за виключенням операції видалення.
Вона відбувається

не для того елемента який першим потрапив в чергу а для того, який має найбільший пріоритет (за певним критерієм) серед усіх елементів черги.


Слайд 19 Priority queue
std::priority_queue mypq;
mypq.push(30);
mypq.push(100);
mypq.push(25);
mypq.push(40);

Priority queue std::priority_queue mypq; mypq.push(30); mypq.push(100); mypq.push(25); mypq.push(40); std::cout

std::cout

std::cout << ' ' << mypq.top();
mypq.pop();
}


http://www.cplusplus.com/reference/queue/priority_queue/

OUTPUT:
Popping out elements... 100 40 30 25


Слайд 20 Вибір контейнера

Вибір контейнера

Слайд 21 Порівняльні характеристики контейнерів

Порівняльні характеристики контейнерів

Слайд 22 Реалізація Stack
Необхідно реалізувати стек який би містив основні

Реалізація StackНеобхідно реалізувати стек який би містив основні операції для роботи:stack();push();pop();top();empty();

операції для роботи:
stack();
push();
pop();
top();
empty();


Слайд 23 Реалізація Queue
Необхідно реалізувати чергу яка б містила основні

Реалізація QueueНеобхідно реалізувати чергу яка б містила основні операції для роботи:queue();push();pop();front();empty();

операції для роботи:
queue();
push();
pop();
front();
empty();


Слайд 24 Реалізація List
Домашнє завдання має містити наступні методи

Реалізація List Домашнє завдання має містити наступні методи для роботи із

для роботи із списком:
1) constructor - Construct list
2) empty

- Test whether container is empty
3) insert - Insert elements into given position
4) erase - Erase elements from given position
5 )Додатково можна реалізувати будь-який метод із std::list http://www.cplusplus.com/reference/list/list/


  • Имя файла: algoritmi-konteyneri-v-stl-lektsіya-2.pptx
  • Количество просмотров: 117
  • Количество скачиваний: 0