Estoy tratando de rotar un vector de elementos en C++. lo que quiero decir con eso es que tengo un vector<point>
Quiero que el último elemento se convierta en el primero.Girar un vector (matriz)
ejemplo:
[1,2,3] convertido en [3,1,2] y luego [2,3,1]
Para que trataron de hacer lo siguiente:
//Add the last element at index 0
ObjectToRotate.insert(0, ObjectToRotate.at(ObjectToRotate.size()-1));
//Remove Last element
ObjectToRotate.erase(ObjectToRotate.size()-1);
pero me sale este error:
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>'
¿Cómo puedo solucionarlo?
Gracias
o utilizar un 'std :: deque' y la '.rotate (1)' función de miembro. –
@CharlesBeattie: 'deque' no tiene función de miembro' rotar'. –
Vaya. Tengo una versión que tiene una rotación (std :: deque es lenta). –