The using keyword has a few meanings.
In this case what it does is that whenever you want to use any type from the std namespace, you do not need to include the namespace name.
Consider the below two example for contrast:
#include <iostream>
int main()
{
std::cout << "Hello world!" << std::endl;
return 0;
}
vs
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
So why wouldn't you always want to use using namespace ___;?
The reason is that there could be classes that are implemented in multiple namespaces. E.g. You can create a Physics::Cube and a Graphics::Cube. If you use both the Physics and Graphics namespace, the compiler wouldn't know what Cube refers to. So sometimes it's wise to cut back on the extensive use of the using keyword.