c++高级

发布时间 2023-04-07 10:41:34作者: InsiApple

lambda函数的两种用法

  • auto
auto factorial = [](auto self, int n) -> int {
        return n < 2 ? 1 : n * self(self, n - 1);
    };
  • function
std::function<void(int, int)> dfs = [&](int i, int j) {
	if (mask_.at<uchar>(i, j) == 255) return;
	mask_.at<uchar>(i, j) = 255;
      for (int k = 0; k < 4; ++k)
      {
      int ii = i + ff[k][0], jj = j + ff[k][1];
      if (ii < m.rows && jj < m.cols)
	dfs(ii, jj);
      }
};