在試著使用for_each 的時候, 發現了一些問題
也把for_each 的定義看過了一遍, 也更加了解其工作原理
for_each 的第三個參數
要怎麼寫才會漂亮呢
1. static function
2. member function
3. lambda function
看其定義
for (; _ChkFirst != _ChkLast; ++_ChkFirst)
_Func(*_ChkFirst);
return (_Func);
這個function 會以 *_ChkFirst 為參數
所以只能用 static function
void aa ( *_ChkFirst )
{ ... };
for_each( , , aa );
用 member function 的話, 則會失敗, 因為member function 會隱含性地多加 this
參數
用 static member function 的話則ok
for_each( , , &class::static_mem_function );
不想上面這種方法時就要用到 mem_fun_ref 或 mem_fun
此時這個 member function 不用有 ( *_CheckFirst ) 這個參數
沒有留言:
張貼留言