很多STL algorithm都是_if結尾的,讓我們可以帶function進去,若配合function object,可讓function更有彈性!!

以下的範例想利用count_if() algorithm得知vector大於n的有幾個?

 1}


執行結果

如何使用Function Object? (C/C++) (STL)2
如何使用Function Object? (C/C++) (STL)
2


若沒有function object,我們就只能帶一個function name進去,由於其signature是固定的,所以只能帶進如33行那樣固定n的function,但STL algorithm還允許我們帶function object進去,若能用function object,就很有彈性了,18~22行將function包成function object,當然用class也行,但若用struct可以省去public:字眼,首先用constructor接下參數,然後對() operator做overload,這樣29行就可以帶參數進去,無論n帶多少都可以,當然更有彈性了。

相关文章:

  • 2021-11-28
  • 2022-12-23
  • 2021-10-13
  • 2022-01-16
  • 2021-08-06
  • 2022-01-05
  • 2021-12-15
  • 2022-01-27
猜你喜欢
  • 2021-06-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-19
相关资源
相似解决方案