Source: http://www.uml.org.cn/c++/pdf/EffectiveSTL.pdf