tomando entrada de una cadena palabra por palabra

Acabo de empezar a aprender C ++. Solo estaba jugando y me encontré con un problema que involucraba la introducción de una palabra palabra por palabra, cada palabra separada por un espacio en blanco. Lo que quiero decir es, supongo que tengo

   name  place animal 

como la entrada. Quiero leer la primera palabra, hacer algunas operaciones en él. Luego lea la segunda palabra, haga algunas operaciones en eso, y luego lea la siguiente palabra, etc.

Intenté almacenar toda la cadena al principio con getline como este

    #include<iostream>
    using namespace std;
    int main()
    {
     string t;
     getline(cin,t);
     cout << t; //just to confirm the input is read correctly
    }

Pero entonces, ¿cómo realizo la operación en cada palabra y paso a la siguiente palabra?

Además, mientras buscaba en Google C ++, en muchos lugares, en lugar de usar "uso de espacio de nombres estándar", la gente prefiere escribir "estándar ::" con todo. ¿Porque eso? Creo que hacen lo mismo. Entonces, ¿por qué tomarse la molestia de escribirlo una y otra vez?

Respuestas a la pregunta(3)

Su respuesta a la pregunta