查找容器中两个元素中任意元素的迭代器



我想找到容器中两个元素中任意元素的迭代器。例如,我有一个{1,2,3,4}向量,我想在其中搜索25元素(首先找到的每个元素都可以,因为我的容器只包含其中一个或不包含它们(。我使用两个std::find来查找两个元素(25(中的每一个,但有更有效的方法吗?

谢谢,Shahab

不要使用std::find来搜索两个元素两次,只需搜索一次即可。问题是,std::find在找到单个值后立即返回,因此它不能用于多个值。

{
while (first!=last) {
if (*first==val) return first;
++first;
}
return last;
}

解决方法是创建自己的循环遍历列表,并检查列表是否包含(a||b(

最新更新