没有使用任何stls,boosts和类似的东西我一直试图旋转我的数组中的元素。我一直在尝试使用mod运算符,是有效的:使用mod运算符C++
void stack::rotate(int r)
{
r = (r % maxSize + maxSize) % maxSize;
for (int first_index = 0; first_index < r; ++first_index)
{
int mem = items[first_index].n;
int index = (first_index + r) % maxSize, index_prev = first_index;
while (index != first_index)
{
items[index_prev] = items[index];
index_prev = index;
index = (index + r) % maxSize;
}
items[index_prev].n = mem;
}
如果项目是一个数组分配到项目结构。虽然它有点奇怪,但项目struct有一个整数'n'成员,所以我可以将它与整数类型的变量一起使用。
但它仍然没有从正在添加右=(。林失去了我的第二个元素的内容,我认为它的休息时间;)