Standard Template Library
Homework List HW will be posted on webpage Due Nov 15
The STL includes: Containers – a data structure which holds arbitrary data type Iterators – way of ‘browsing’ through a container Algorithms – operations which can be performed on any container (where it makes sense)
Containers vector list deque (double-ended queue) set and multiset map and multimap
vector Much like an array Accessible with [] Provides constant-time random access Dynamically resizable May be of any type.
list Changes size as elements are inserted or deleted May be of any type.
list syntax #include using namespace std; void aFunc() { list lst; lst.push_back(7.0); }
Some list methods Since list is a class, it has methods –push_back() –pop_back() –front() –back() –empty() –clear() –size() –resize() –capacity() See
Iterator Iterators are a convenient way to ‘browse’ Every container offers a object.start() Every container offers an object.end() Every iterator supports ++ and - - (no matter what the structure of the container)
List organization From any car in the train you may go to the preceding or succeeding one Use ++ or - - operation on the iterator
Lists #include A list is like a freight train Cars in sequence, starting with 0 Each car is a container for a type of data – e.g. an int, a float, a object
Examine the elements of a list #include using namespace std; int main() { list lst; list ::iterator lp; for (lp = lst.begin(); lp != lst.end(); ++lp) { // do something here } return 0; }
Algorithms You must include the header #include using namespace std;
Algorithms Provides standard algorithms like sort and swap on any kind of data in the container, provided …
Algorithms Provides standard algorithms like sort and swap on any kind of data in the container, provided … That prerequisites are defined (the < operator for sort)
Sort algorithm example #include using namespace std; int main() { list lst; for (int i = 0; i < 5; ++i) { int aNum = rand() % 100; lst.push_back(aNum); } lst.sort(); return 0; }