ベクトルを取り込み、単純に(手動で)反転する関数を作成しようとしています。私は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;
}