我想找到容器中两个元素中任意元素的迭代器。例如,我有一个{1,2,3,4}向量,我想在其中搜索2或5元素(首先找到的每个元素都可以,因为我的容器只包含其中一个或不包含它们(。我使用两个std::find来查找两个元素(2和5(中的每一个,但有更有效的方法吗?
谢谢,Shahab
不要使用std::find来搜索两个元素两次,只需搜索一次即可。问题是,std::find在找到单个值后立即返回,因此它不能用于多个值。
{
while (first!=last) {
if (*first==val) return first;
++first;
}
return last;
}
解决方法是创建自己的循环遍历列表,并检查列表是否包含(a||b(