You use the resolution scope operator wherever you use a member of namespace std. Yes it is a lot of extra typing, but it makes sure that you want to use that particular member of std rather than a user defined member of something else. Say you want to declare a string variable from the std namespace:
Code:
std::string sSomeVar;
But you create your own string class, and want to declare an object of that string:
Code:
class string
{
    /*Class members here*/
}; 

string sMyStringObject;
If you use the namespace std, and want to declare an object of your class, the compiler will get confused and most likely spit out an error:

Code:
using namespace std;

string sSomeVar; /*String from std namespace*/
string sMyStringObject; /*Object of class*/

/*Compiler doesn't know what string class to pick!*/
Conclusion: safer to use the scope resolution operator ::