我不是C++编码员,所以也许很简单。
我有一个Point类的 vector ,我想找到AABB矩形:
我已经完成了for循环,保存了最小值和最大值(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;
}
但是我遇到一个奇怪的错误
如果我将min_element放在<
最佳答案
min_element
将迭代器返回到最小元素,您正尝试将其发送到cout
。
使用:
std::cout<<*min_element()
而且,除非vector元素是
<<
已经具有重载cout
运算符的类型,否则还需要重载<<
。关于c++ - min_element错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9068985/