我不是C++编码员,所以也许很简单。

我有一个Point类的 vector ,我想找到AABB矩形:

  • min x-y
  • 分钟x-最大y
  • max x-最小
  • max x-max y

  • 我已经完成了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/

    10-10 21:29