首页 > 解决方案 > 查找向量数组中是否存在具有相同值的结构

问题描述

我想检查向量数组中是否存在具有相同值的结构。有人可以向我解释我该怎么做吗?

struct mineCoordinate{
int x;
int y;
};

std::vector<mineCoordinate> mines;  // vector array
if(std::find(mines.begin(), mines.end(), mineCoordinate{userInputX,userInputY}) != mines.end()) { 
//do something if true.}

正如你所看到的,我尝试了 std::find 函数,我认为它应该可以工作(这是大多数问题的答案,比如我的问题)。唯一的条件是比较相同的对象

标签: c++stdvector

解决方案


您的代码中似乎缺少的是对两个mineCoordinate对象相等的含义的定义。如果你添加这个

bool operator==(const mineCoordinate& a, const mineCoordinate& b)
{
    return a.x == b.x && a.y == b.y;
}

那么我认为它也会起作用。

你可能认为这个定义太明显了,不需要显式定义,但这是不正确的。


推荐阅读