我正在努力实现一个"环绕"圆形阵列中的效果。当我将项目推到前面时,我希望它存储在不断减少的位置。当我向前推进时,我尝试这样的事情:
items[front] = ch;
front = (front - 1) % capacity;
但这并没有像我期望的那样环绕。前面从0开始,当第二行执行时,前面变为-1。第二行执行后,不应该变为6吗?我的数据结构教科书似乎也这么认为。
答案 0 :(得分:3)
这就是%
在c ++中的工作方式。为了获得你想要的效果,试试这个:
front = (front + capacity - 1) % capacity;