有一个vector数组,数组中存储自定义类A ,A有成员变量id,定义一个类B,同样有成员变量id,如何快速查找i数组中id与B对象id相同的变量
时间: 2023-08-18 10:08:40 浏览: 59
Vue监听一个数组id是否与另一个数组id相同的方法
可以使用std::find_if算法来查找vector中满足条件的元素,具体实现如下:
假设vector名称为vec,自定义类为A,成员变量为id,另有一个B对象,其id为B_id,则代码如下:
```
class B
{
public:
int id;
};
// ...
B b;
b.id = B_id;
auto it = std::find_if(vec.begin(), vec.end(), [B_id](const A& a){ return a.id == b.id; });
if (it != vec.end())
{
// 找到了
A& result = *it;
}
else
{
// 没找到
}
```
其中,Lambda表达式中的返回值表示是否满足查找条件,如果满足条件,则返回对应元素的迭代器,否则返回vector的end迭代器。在Lambda表达式中,我们使用b对象来捕获B对象的id值,以便与vector中的A对象进行比较。
阅读全文