我想旋转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'和'.rotate(1)'成员函数。 – 2012-07-05 11:14:58
@CharlesBeattie:'deque'没有'rotate'成员函数。 – 2012-07-05 11:28:06
糟糕。我有一个有旋转的版本(std :: deque很慢)。 – 2012-07-05 11:53:51