recode the sgi stl for me to understand the framework of STL