"std::string::begin( )" returns a pointer to the very first element of a "std::string" instance. Because no integer type can be converted to an address, the compiler produces an error. What you're looking for is iterators. They can be defined like so:
There is no need to use a subscript with a pointer because that pointer is already pointing to that element in the string.
So when you do ++It_ you are telling to pointer to point to the next element in that string. You can also do basic arithmetic on the pointer to (like It_ += 4 which tells it to jump 4 elements forward).
But to answer your question no you cant use a subscript with a pointer I don't believe.
If you want to use a subscript on the string use std::string::size_type (Preferred) or int