无法使用传递给 find() 函数的 C++ const 向量

问题描述 投票:0回答:0

这是一个包含一些数据和重载的相等运算符的类:

class Point {
    int x, y;
    
    public:
        Point(int x0, int y0): x(x0), y(y0) {};
        bool operator==(const Point& rval) {
            return x == rval.x && y == rval.y;  
        }
};

这是一个成功获取此类对象向量的函数,并报告给定对象是否包含在其中:

bool hasVal(std::vector<Point>& vec, const Point& target) {
    return find(vec.begin(), vec.end(), target) != vec.end();
}

现在,我认为(并且希望)我可以使向量引用参数

const
,因为它不打算以任何方式修改向量或其内容。但是,标记向量引用
const
会导致编译器错误:

241 17 C:\Program Files (x86)\Embarcadero\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\9.2.0\included

c++ function vector stl
© www.soinside.com 2019 - 2024. All rights reserved.