c++ - std::search 和 std::find_first_of 之间的区别

标签 c++ find std

我试图掌握 std::searchstd::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/

相关文章:

c++ - 当堆栈为空时,在(模板化的)堆栈弹出方法中做什么?

javascript - 为什么 find() 没有返回正确的值?

c++ - std::function 回调与观察者模式中的参数(注册主题上的占位符)

c++ - 从文件创建二维 vector ?

c++ - 如何在 C++ 中声明一个字符串而不赋值?

c++ - shared_ptr 类型转换

c++ - 检查 map c++中是否存在元素

linux "find"命令

c++ - 当在函数调用中使用 new 时,你释放了什么?如下所示在 boost 调用中

c++ - fstream 读取 MSR