#include <forward_list>
#include <iostream>
bool ReverseTest(const std::forward_list<int32_t>& sorceList, const std::forward_list<int32_t>& newList)
{
auto list{sorceList};
list.reverse();
auto listIterator = list.begin();
auto newListIterator = newList.begin();
for (; (listIterator != list.end()) || (newListIterator != newList.end());
++listIterator, ++newListIterator)
{
if (*listIterator != *newListIterator)
{
return false;
}
}
return (listIterator == list.end()) && (newListIterator == newList.end());
}
std::forward_list<int32_t> Create()
{
std::forward_list<int32_t> list;
for (int32_t i = 1; i < 5; ++i)
{
list.push_front(i);
}
return list;
}
std::forward_list<int32_t> Reverse(const std::forward_list<int32_t>& list)
{
std::forward_list<int32_t> newList{list};
newList.reverse();
return newList;
}
int main()
{
auto list = Create();
std::forward_list<int32_t> newList; //= Reverse(list);
for (int32_t i = 4; i > 1; --i)
{
newList.push_front(i);
}
newList.push_front(1);
std::cout << ReverseTest(list, newList);
return 0;
}
I2luY2x1ZGUgPGZvcndhcmRfbGlzdD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKYm9vbCBSZXZlcnNlVGVzdChjb25zdCBzdGQ6OmZvcndhcmRfbGlzdDxpbnQzMl90PiYgc29yY2VMaXN0LCBjb25zdCBzdGQ6OmZvcndhcmRfbGlzdDxpbnQzMl90PiYgbmV3TGlzdCkKewoJYXV0byBsaXN0e3NvcmNlTGlzdH07CglsaXN0LnJldmVyc2UoKTsKCQogICAgYXV0byBsaXN0SXRlcmF0b3IgPSBsaXN0LmJlZ2luKCk7CiAgICBhdXRvIG5ld0xpc3RJdGVyYXRvciA9IG5ld0xpc3QuYmVnaW4oKTsKICAgIGZvciAoOyAobGlzdEl0ZXJhdG9yICE9IGxpc3QuZW5kKCkpIHx8IChuZXdMaXN0SXRlcmF0b3IgIT0gbmV3TGlzdC5lbmQoKSk7CiAgICAgICAgICsrbGlzdEl0ZXJhdG9yLCArK25ld0xpc3RJdGVyYXRvcikKICAgIHsKICAgICAgICBpZiAoKmxpc3RJdGVyYXRvciAhPSAqbmV3TGlzdEl0ZXJhdG9yKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuIChsaXN0SXRlcmF0b3IgPT0gbGlzdC5lbmQoKSkgJiYgKG5ld0xpc3RJdGVyYXRvciA9PSBuZXdMaXN0LmVuZCgpKTsKfQoKc3RkOjpmb3J3YXJkX2xpc3Q8aW50MzJfdD4gQ3JlYXRlKCkKewogICAgc3RkOjpmb3J3YXJkX2xpc3Q8aW50MzJfdD4gbGlzdDsKICAgIGZvciAoaW50MzJfdCBpID0gMTsgaSA8IDU7ICsraSkKICAgIHsKICAgICAgICBsaXN0LnB1c2hfZnJvbnQoaSk7CiAgICB9CiAgICByZXR1cm4gbGlzdDsKfQoKc3RkOjpmb3J3YXJkX2xpc3Q8aW50MzJfdD4gUmV2ZXJzZShjb25zdCBzdGQ6OmZvcndhcmRfbGlzdDxpbnQzMl90PiYgbGlzdCkKewogICAgc3RkOjpmb3J3YXJkX2xpc3Q8aW50MzJfdD4gbmV3TGlzdHtsaXN0fTsKICAgIG5ld0xpc3QucmV2ZXJzZSgpOwogICAgcmV0dXJuIG5ld0xpc3Q7Cn0KCgppbnQgbWFpbigpCnsKCWF1dG8gbGlzdCA9IENyZWF0ZSgpOwoJCiAgICBzdGQ6OmZvcndhcmRfbGlzdDxpbnQzMl90PiBuZXdMaXN0OyAvLz0gUmV2ZXJzZShsaXN0KTsKICAgIGZvciAoaW50MzJfdCBpID0gNDsgaSA+IDE7IC0taSkKICAgIHsKICAgICAgICBuZXdMaXN0LnB1c2hfZnJvbnQoaSk7CiAgICB9CiAgICBuZXdMaXN0LnB1c2hfZnJvbnQoMSk7CiAgICAKICAgIHN0ZDo6Y291dCA8PCBSZXZlcnNlVGVzdChsaXN0LCBuZXdMaXN0KTsKCXJldHVybiAwOwp9