繁体   English   中英

如何更改 function 以传递变量?

[英]How to change function to pass variable?

我使用基准测试 c++17 中的算法,以查看它们在不同执行中的速度。

我正在尝试将变量 int n1, n2 传递给 function 但我不知道如何。

我没有很多使用模板的经验

   using namespace std;

    template <typename TFunc> void RunAndMeasure(const char* title, TFunc func)
      {
       const auto start = chrono::steady_clock::now();
       func();
       const auto end = chrono::steady_clock::now();
       cout << title << ": " << chrono::duration <double, milli>(end - start).count() << " ms" << "\n \n";
      }

  int main()
   {
      int n1 = 3;
      int n2 = 5;
      vector<int> v{0, 1, 2, 3, 4};

      RunAndMeasure("std::warm up", [&v] {

    auto result1 = find(execution::par, begin(v), end(v), n1);
    auto result2 = find(execution::par, begin(v), end(v), n2);

    if (result1 != end(v)) {
    cout << "v contains: " << n1 << '\n';
    } else {
    cout << "v does not contain: " << n1 << '\n';
    }

    if (result2 != end(v)) {
    cout << "v contains: " << n2 << '\n';
    } else {
    cout << "v does not contain: " << n2 << '\n';
    }
});
   return 0;

   }
#include <vector>
#include <iostream>
using namespace std;

template <typename TFunc>
void RunAndMeasure(const char *title, TFunc func)
{
    cout << title;
    func();
}

int main()
{
    int n1 = 3;
    int n2 = 5;
    vector<int> v{0, 1, 2, 3, 4};

    RunAndMeasure("some title", [&v, n1, n2] {
        cout << v.size() << n1 << n2;
    });

    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM