Abstrakta Containertyper
-
Upload
hoyt-solomon -
Category
Documents
-
view
27 -
download
3
description
Transcript of Abstrakta Containertyper
![Page 1: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/1.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 1
Abstrakta Containertyper
• Vilka finns fördefinierade?
• Vad kan dom?
• #pragma warning(disable:4786)
![Page 2: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/2.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 2
Sekventiell container
innehåller en ordnad följd av element.
Följande typer finns:
• vector– Specialfall “deque”, optimerad för köer
• lista
![Page 3: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/3.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 3
vector<Type>
0 1 2 3 4
![Page 4: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/4.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 4
Vector< > Exempel på medlemsfunktioner
• size• capacity• reserve• resize• push_back• push_front• [ ]
• begin• end• insert element/sequence• erase element/sequence• operator=• empty• vector(vec.pos1,vec.pos2)• find
![Page 5: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/5.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 5
list<Type>
![Page 6: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/6.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 6
List< >Exempel på medlemsfunktioner
• size• insert
element/sequence• push_back• push_front• sort • reverse
• begin• end• erase element/sequence• operator=• empty• list(list2.pos1,list2.pos2)• merge
![Page 7: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/7.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 7
Iteratoranvändning
vector<string>::iterator it;. . .
for (it = myVect.begin(); it!= myVect.end(); it++)
{
cout << * it << endl;
}
![Page 8: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/8.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 8
Associativ container
Stöder effektiv sökning
Följande typer finns:
• map - (nyckel, värde) - par
• set - visst element finns/finns inte
• multimap, multiset: som map, set men det kan finnas flera par/element med samma nyckel
![Page 9: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/9.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 9
map<Type1, Type2>
#include <map> . . .
map <string,int> myPhonebook;
myPhonebook.insert(make_pair(string(“Joe”), 123456));
. . .
int joes_number = myPhonebook[“Joe”];
. . .
myPhonebook.erase(“Joe”);
![Page 10: Abstrakta Containertyper](https://reader036.fdocuments.us/reader036/viewer/2022082817/56812c25550346895d908e86/html5/thumbnails/10.jpg)
2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT
Sid 10
set<Type>
#include <set>
set <int> lucky_numbers;
lucky_numbers.insert(3);
lucky_numbers.insert(7);
lucky_numbers.insert(13);