c++ - 查找向量数组中是否存在具有相同值的结构
问题描述
我想检查向量数组中是否存在具有相同值的结构。有人可以向我解释我该怎么做吗?
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 函数,我认为它应该可以工作(这是大多数问题的答案,比如我的问题)。唯一的条件是比较相同的对象
解决方案
您的代码中似乎缺少的是对两个mineCoordinate
对象相等的含义的定义。如果你添加这个
bool operator==(const mineCoordinate& a, const mineCoordinate& b)
{
return a.x == b.x && a.y == b.y;
}
那么我认为它也会起作用。
你可能认为这个定义太明显了,不需要显式定义,但这是不正确的。
推荐阅读
- mongodb - 检查数组中的所有元素是否具有 mongodb 中某个字段的值
- mysql - 如何在laravel中处理100000个查询时让mysql cpu休息?
- pgadmin - 有没有办法在 pgAdmin 中自动填充列、表等的单词?
- wordpress - 允许贡献者上传图片但不能删除它们
- javascript - 如何将带有参数的回调传递给 React.memo?
- java - 应用未运行时推送预定通知
- c++ - 关于入口点的问题(初级)
- python - 至少包含一次字符 X 的子字符串的计数。例如输入:str = “abcd”,X = 'b' 输出:6
- php - 如何在配置 phpmyadmin 时修复“未选择数据库”错误?
- php - 如何使用 belongsToMany 选择选项?