C++で要素のベクトルを回転しようとしています。私が意味することは、私がvector<point>
を持っているということです。最後の要素が最初になりたいのです。ベクトル(配列)を回転する
例:
[1,2,3]となる[3,1,2]そのため、[2,3,1]
私は次の操作を実行しようとした:
//Add the last element at index 0
ObjectToRotate.insert(0, ObjectToRotate.at(ObjectToRotate.size()-1));
//Remove Last element
ObjectToRotate.erase(ObjectToRotate.size()-1);
が、私はこのエラーを取得:
Error 6 error C2664: 'std::_Vector_iterator<_Myvec> std::vector<_Ty>::insert<cv::Point_<_Tp>&>(std::_Vector_const_iterator<_Myvec>,_Valty)' : cannot convert parameter 1 from 'int' to 'std::_Vector_const_iterator<_Myvec>'
どのように私はそれを解決することができますか?
をシフトまたは 'のstd :: deque'と使用する1であります'.rotate(1)'メンバ関数です。 –
@CharlesBeattie: 'deque'は' rotate'メンバ関数を持っていません。 –
私は回転を持っているバージョンを持っています(std :: dequeは遅いです)。 –