std::find std::execution
一 简介
std::find 头文件<algorithm>
template< class InputIt, class T >
InputIt find( InputIt first, InputIt last, const T& value ); (1) (C++20 前)
template< class InputIt, class T >
constexpr InputIt find( InputIt first, InputIt last, const T& value ); (2) (C++20 起)
template< class ExecutionPolicy, class ForwardIt, class T >
ForwardIt find( ExecutionPolicy&& policy, ForwardIt first, ForwardIt last, const T& value ); (3) (C++17 起)
二 举例
(1)和(2)比较好理解。
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7};
auto it = std::find(vec.begin(), vec.end(), 1);
if (vec.end() != it) {
std::cout << "find it!" << std::endl;
}
// output: find it!
(3)特殊之处在policy,它是C++17起定义的一种并行算法的执行策略类型,定义于头文件 <execution>, 有以下4类:
class sequenced_policy { /* unspecified */ }; (1) (C++17 起)
class parallel_policy { /* unspecified */ }; (2) (C++17 起)
class parallel_unsequenced_policy { /* unspecified */ }; (3) (C++17 起)
class unsequenced_policy { /* unspecified */ }; (4) (C++20 起)
auto it1 = std::find(std::execution::seq, vec.begin(), vec.end(), 1);
if (vec.end() != it1) {
std::cout << "find it again!" << std::endl;
}
// output: find it again!
// 注:vs2017 15.7全面支持C++17, 我使用版本为15.9.14 ,且功能属性->C/C++->语言->C++语言标准选择C++17.
三 参考
上一篇: 延迟队列DelayQueue的源码解析
下一篇: Python学习笔记(基础篇)_014_GUI模块 easygui的使用 博客分类: 5.Python学习笔记 pythoneasyguigui
推荐阅读
-
C++11 std::function和std::bind
-
std::find std::execution
-
C++ 原子操作 std::atomic<T>
-
An Example of Using std::tr1::bind 博客分类: c++ c++
-
Standard Template Library (STL) - std::queue::back
-
[C/C++]_[初级]_[std::priority_queue的介绍]
-
std::map 博客分类: c++
-
std::map 博客分类: c++
-
c++基础--std::string
-
C++17 std::shared_mutex的替代方案boost::shared_mutex 博客分类: C/C++ C++17boost