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.

三 参考

std::find

std::execution

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值