人喜一個簡單的問題:清除向量空間
我設置了向量到一定規模後,我想要做的是空的是矢量,一旦它擊中的最大空間。
我有這樣的代碼如下:
vector<Point> Rightarm(20);
vector<Point> Leftarm(20);
vector<Point>::const_iterator RightIter;
vector<Point>::const_iterator LeftIter;
Rightarm.push_back(center);
Leftarm.push_back(center1);
for(RightIter = Rightarm.begin(); RightIter != Rightarm.end(); ++RightIter)
{
circle(drawing, *RightIter, 3, Scalar(0,255,0), CV_FILLED);
}
if(RightIter == Rightarm.end())
{
Rightarm.clear();
}
for(LeftIter = Leftarm.begin(); LeftIter != Leftarm.end(); ++LeftIter)
{
circle(drawing, *LeftIter, 3, Scalar(0,255,0), CV_FILLED);
}
if(LeftIter == Leftarm.end())
{
Leftarm.clear();
}
我有這段代碼的問題是,載體被清除,每次...如果我希望它擊中的大小限制後,才清空的20 ....
任何人都可以發現哪裏出錯了?...?
首先,*哪個向量*?你有兩個。其次,「Rightarm」和「Leftarm」都會隨着你在這裏的代碼被清除。上面的for循環的終止保證了。看看每個for-loop的持續狀態。現在看看每個清除相應向量的if條件。嗯.... – WhozCraig 2013-03-27 19:28:36
3個向量只有2個右臂和左臂以及2個迭代器......並且這就是我遇到的問題,它總是清除我想要向量被清空的位置,只有當它們達到最大容量時20 – Tomazi 2013-03-27 19:31:18
您只需*將* size *設置爲20.因此,根據您默認構建的「Point」,每個狀態下有20個對象。然後你重複遍歷每一個,當你到達最後時停止,並清除如果你達到最後。也許使用capcity()並檢查size()會更好。 – WhozCraig 2013-03-27 19:33:43