Erase() function in c++

sir,i wrote s.erase(s.begin()+s.length()-1) to erase last character of string s,it worked fine but it is not working by s.erase(s.end()).why it is so?

vector.begin() given you pointer points to starting element whereas vector.end() return pointer next to last element. So s.erase(s.end()-1); will work fine for your case