我不是一個C++編碼器,所以可能很容易。min_element錯誤
我有Point類的載體,我想找到的AABB矩形:
- 分鐘X - 分Ÿ
- 分鐘X - 最大值爲y
- 最大X - 最小Ÿ
- 最大x - 最大y
我已經做了循環保存最小和最大(一次爲x和一次爲y),並更新每個迭代的值與一些ifs。
但我敢肯定,有一些更聰明的東西或在提高 。
例如我只是想:
vector<ofPoint> points;
// ....
bool _compareX(ofPoint const &p1, ofPoint const &p2) { return p1.x > p2.x; }
bool _compareY(ofPoint const &p1, ofPoint const &p2) { return p1.y > p2.y;}
void DrawerWidget::foo()
{
cout << std::min_element(points.begin(), points.end(), &_compareX) << endl;
}
但我發現了一個奇怪的錯誤,如
error: no match for ‘operator<<’ in ‘std::cout << std::min_element [with _FIter = __gnu_cxx::__normal_iterator > >, _Compare = bool ()(const ofPoint&, const ofPoint&)](((DrawerWidget)this)->DrawerWidget::points.std::vector<_Tp, _Alloc>::begin with _Tp = ofVec3f, _Alloc = std::allocator, ((DrawerWidget*)this)->DrawerWidget::points.std::vector<_Tp, _Alloc>::end with _Tp = ofVec3f, _Alloc = std::allocator, _compareX)’
和類似的錯誤,如果我把min_element別的地方在< <
好的,但有一個完整的AABB最聰明的方法? – nkint 2012-01-30 19:35:15
@nkint:這與主要問題中提出的問題沒有什麼不同。請原諒我也許我誤解了,但我不確定你到底想要做什麼。 – 2012-01-30 19:39:25
好的,對不起,我會開一個新主題 – nkint 2012-01-30 19:57:45