Kind of a grab bag today. Topic 1: Merge Sort Stable sort: Do equal items end up in the same order? Merge sort can do that Topic 2: STL flat sets And adapters in general Has underlying storage from some other type (usually vector) Topic 3: Graphs STL doesn't have a graph ADT Useful to represent a network of any sort Users who friend each other Nodes in a computer network Locations in a RPG Topics in a wiki or manual So how to do one? Adjacency list for each node: Good storage efficiency, duplicate for bidirectional graph Adjacency matrix: Fast, but not very efficient with regard to space bidirectional graph: Symmetric along main diagonal Incidence matrix: Limits maximum number of edges, or requires resize Efficiency depends on connectivity (popular users?) Existing pieces from STL: Key, with map, set of nodes (or map if edges have values) Running time for each operation on Wikipedia How about calculating a minimum spanning tree? Dijkstra's Algorithm Graph isomorphism: It's in a special complexity class There's actually been some progress since I last looked at this problem