string half_password = password.str();
if(shift < 0) //left shift
rotate(half_password.begin(), half_password.begin() + (-1*shift), half_password.end());
if(shift > 0) //right shift
rotate(half_password.rbegin(), half_password.rbegin() + shift, half_password.rend());
现在,如果 |shift| > 7 且长度half_password
为 8,则我的程序因分段错误而崩溃。我的问题是该rotate
函数是否不允许旋转超过字符串的最高索引?
我对此没有问题,逻辑工作正常。我想知道这是否是该rotate
功能的工作方式。