我正在尝试了解std::search
和std::find_first_of
之间的区别
它们具有相同的原型(prototype):
template <class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 find_first_of (ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2);
template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>
ForwardIterator1 find_first_of (ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2,
BinaryPredicate pred);
template <class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 search (ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2);
template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>
ForwardIterator1 search (ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2,
BinaryPredicate pred);
它们都返回相同的东西:一个迭代器,该序列迭代到[first1,last1)内部序列[first2,last2)的第一次出现。 (使用相等性或二进制谓词)
那么区别是什么呢 ?我错了吗 ?
最佳答案
区别在于std::search
在另一个范围内搜索整个元素范围,而std::find_first_of
在另一个范围内搜索单个元素。