我试图掌握 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
搜索一个范围内的单个元素。
关于c++ - std::search 和 std::find_first_of 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017338/