В чем разница между cin/cout и std::cin/std::cout?
В первом случае ты написал в коде:
using namespace std;
И компилятор С++ автоматически ищет неизвестные идентификаторы в пространстве имён std.
Во втором случае ты явно указываешь компилятору, в каком пространстве имён находится данный идентификатор.
Первый вариант короче, второй надёжнее: в using namespace может быть указано множество пространств имён, а в разных пространствах могут быть совпадающие идентификаторы. В результате может возникнуть ситуация, когда компилятор столкнётся с тем, что используемый идентификатор существует сразу в нескольких объявленных по умолчанию пространствах имён. Или ты сам запутаешься и будет подключен идентификатор не из того пространства имён, которое ты ожидал.
В том, что кто-то не знает, что такое пространство имен
В первом случае использование идет без явного указания пространства имен (std), во втором случае идет явное указание пространства имен.
Вызов в первом случае может (полагаю, т.к не знаю С++) привести к ошибкам, если не включить это пространство имен в проект.