Using the STL: The C++ Standard Template Library