0
什麼是c++11
範圍內環路也導致此:關於C++ 11範圍內循環和迭代
std::list<Point> item;
....
//fill the list somewhere else
....
for(Point p : item) {
p.lowerY();
}
若要僅一次(即lowerY()
做什麼它應該只有一次這樣做,但下一次達到這個循環時,它什麼都不做),但是這個:
list<Point>::iterator it;
for (it = item.begin();it != item.end();++it) {
it->lowerY();
}
每次都很完美。有什麼不同?
我想..這是因爲你得到'按值p'(所以..如果'lowerY'應該改變原始點上的東西..它不會影響原來的)。嘗試使用'Point&p'。 – wendelbsilva
是的,修復它,我看到了,所以它製作了原件的副本並改變了它。 @wendelbsilva – shinzou