el código debe ir decorado con las etiquetas correspondientes... mira el combo "Highlight"
"template" sirve para crear plantillas. El tema de las plantillas es demasiado extenso como para ponerlo tal cual en una respuesta del foro. Lo mejor es que consigas o busques un buen manual de C++ que trate sobre el tema (en Internet hay abundante documentación sobre cómo funcionan las plantillas)
No voy a ponerte comentarios línea a línea sobre el funcionamiento de ese código. Lo suyo sería que aprendieses a leer y entender la documentación sobre las funciones. Dado que todo el código se basa en la STL, deberías ser capaz de localizar las clases y funciones involucradas en cada operación para poder consultar su documentación.
Puedes encontrar ayuda sobre las funciones
aquí y
aquí