Я написал код для циклического вращения массива целых чисел.Например, для данного массива - 1 2 3 4 5 6 7 8 Выходной массив - 8 1 2 3 4 5 6 7
Проблема, с которой я сталкиваюсь, если я использую ключевое слово auto в какой-то момент, тогда это страннорезультат, который находится за пределами моего понимания.Кто-нибудь, пожалуйста, помогите мне в обобщении проблемы?
#include<iostream>
#include<bits/stdc++.h>
#include <typeinfo>
using namespace std;
void rotate_one_by_one(array<int, 8> &arr)
{
auto temp = arr[arr.size() - 1];
//auto i = arr.size() - 2; // Output : 1 2 3 4 5 6 7 8
int i = arr.size() - 2; // Output : 8 1 2 3 4 5 6 7
for(; i > -1; --i)
{
arr[i+1] = arr[i];
}
arr.at(i+1) = temp;
}
void cyc_rotate(array<int, 8> &arr)
{
rotate_one_by_one(arr);
cout<<"After cyclic rotate\n";
for(auto n : arr)
cout<<n<<" ";
}
int main()
{
array<int, 8> arr = {1,2,3,4,5,6,7,8};
cyc_rotate(arr);
return 0;
}
Пожалуйста, найдите закомментированную строку в коде, где я упомянул выходные данные для использования типа auto и int.Если кто-то все еще не может получить то, что я пытаюсь передать, пожалуйста, дайте мне знать.