You could always use whatever your current library was.
For most people in Unix that might be
a p-thread library and that still might be the basis for this.
But now they've put into the standard at a little higher
level what the concurrency primitives need to be, and
then they let the implementation support that standard.
So now you can write more uniform code
across different platforms.
Another very valuable library is regular expression library.
This is probably one of the first libraries that people immediately wanted,
that wasn't in the standard, because regular expressions have been in
use in computer science and programming forever and they're just
an extremely useful way of parsing strings and so Just a natural addition.
And finally, among the interesting traditional
libraries is a type_traits library and
a type_traits library can be used also to use static assertions and
very helpful in writing more portable code and
code that can be statically checked after you instantiate a template so
that again is very important especially for
modern day generic programming.
So all of this stuff, and it's huge, I mean,
I'm just going to give you the barest roadmap through this stuff and
for your particular purposes you're going to have to go and study at length.
The good news is lots of material available in studying this.
Lots of material already on the web where you can read about any of this.
Okay, now the quiz question.
We've used an unordered_map before, so hash based lookup.
If there are no collisions and
you're using an unordered map instead of a map for n elements.
What is the order that the computation is going to take?