Implementation of C++ std::Map template class with O(lg(n)) average-case for key lookup and insertion and O(1) for all iterator increments and decrements