10
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)

Abstrakta Containertyper

Embed Size (px)

DESCRIPTION

Abstrakta Containertyper. Vilka finns fördefinierade? Vad kan dom? #pragma warning(disable:4786). Sekventiell container. innehåller en ordnad följd av element. Följande typer finns: vector Specialfall “deque”, optimerad för köer lista. 0. 1. 2. 3. 4. vector. size capacity - PowerPoint PPT Presentation

Citation preview

Page 1: Abstrakta Containertyper

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

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

2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT

Sid 3

vector<Type>

0 1 2 3 4

Page 4: Abstrakta Containertyper

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

2000-period2 CD5250 OOP med C++Daniel Flemström MDH/IDT

Sid 5

list<Type>

Page 6: Abstrakta Containertyper

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

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

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

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

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);