Que bueno que estes iniciando en C++. gets(x) es una función pues ya bastante antigua y gracias a las classes Wrapper de hoy ya no es necesario usarla. De cualquier manera, se utilizaba para obtener un caracter ( char ) de algún stream, como puede ser el teclado, la consola, etc.
En cuanto a tu segunda pregunta, puedes checar este tutorial: