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;
}
items는 항목 struct에 할당 된 배열입니다. 조금 이상하지만 항목 구조체는 정수형 'n'멤버를 가지고 있으므로 정수형 변수와 함께 사용할 수 있습니다.