벡터를 가져 와서 단순히 (수동으로) 반전하는 함수를 생성하려고합니다. 나는 reverse()의 존재를 알고 있었지만, "벡터 반복자"라는 문제에 부딪혔다. 그리고 교육적 목적을 위해, 나는 그것이 무엇을 의미하는지 알고 싶다. 나는이 문제를 연구 해봤는데 누군가 (이 포럼에서) vect.end()는 정의에 의해 참조 해제 될 수 없다고했지만, 내 이해에서 reverse_iterator를 사용하는 것은 끝을 뒤집어서 논리를 따른다. vect.rend는 참조 할 수 없어야합니다.벡터 반복자가 역 참조가 가능하지 않습니다. (수동으로 벡터를 반홖하려고 시도합니다.)
vector<int> reverseVector(vector<int>);
int main()
{
vector<int> vec;
for (int i = 0; i < 11; i++)
{
vec.push_back(i);
}
vec = reverseVector(vec);
for (vector<int>::iterator it = vec.begin(); it != vec.end(); it++)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
vector<int> reverseVector(vector<int> vect)
{
vector<int>::reverse_iterator ritr;
for (ritr = vect.rbegin(); ritr != vect.rend(); ritr++)
{
vect.insert(vect.begin(), *ritr);
vect.pop_back();
}
return vect;
}