/**This program demonstrates how to use dependent async tasks to createalgorithm tasks.*/#include <taskflow/taskflow.hpp>#include <taskflow/algorithm/for_each.hpp>#include <taskflow/algorithm/transform.hpp>#include <taskflow/algorithm/reduce.hpp>int main(){const size_t N = 65536;tf::Executor executor;int sum{1};std::vector<int> data(N);// for-eachtf::AsyncTask A = executor.silent_dependent_async(tf::make_for_each_task(data.begin(), data.end(), [](int& i){ i = 1; }));// transformtf::AsyncTask B = executor.silent_dependent_async(tf::make_transform_task(data.begin(), data.end(), data.begin(), [](int& i) { return i*2; }), A);// reducetf::AsyncTask C = executor.silent_dependent_async(tf::make_reduce_task(data.begin(), data.end(), sum, std::plus<int>{}), B);// wait for all async task to completeexecutor.wait_for_all();// verify the resultif(sum != N*2 + 1) {throw std::runtime_error("INCORRECT RESULT");}else {std::cout << "CORRECT RESULT\n";}return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。