这边++last和i的值是一样的吗,假设left=2不就是v[3]和v[3]交换数值了吗
2处为什么不是i++,++i的话就没用到s[0]了吧
问题补充:
这个是问题2的完整版,为什么22+输出的不是4而是 error: stack empty
22
这不是划线部分输出的吗
i = left + 1 是初始化,只用一次,每个循环i都要加1,
++last 是初始的left +1 , 不想等的
2处 用++i 是为了接收第二位数字, 比如你要输入13, ++i是接收3
last是最后一个,left是左边分区(比排序哨兵小的元素)的界限
如果是 ++i的话,那么读取到的字符是最后一个数字,而不是后面的小数点。
第一个情况应该是按一般情况处理了吧,在以后的循环都增加判断开销和在这一次增加运算开销间权衡的,个人理解。
第二个问题里在最初使得while里已经读入了s[0],所以后面要从s[1]开始添加