Visualization Tool Kit(VTK)など

Definition
// class _InIt should be iterator or pointer of array
// class _Fn1 is functor (function object), has overloaded operator() (*_InIt)
template<class _InIt, class _Fn1> 
inline	_Fn1 _For_each(_InIt _First, _InIt _Last, _Fn1 _Func)
{
  for (; _First != _Last; ++_First)
    _Func(*_First);
  return (_Func); // Copy of _Func is returned
}

Sample
template<typename Ty>
class PrintFunc
{
  size_t mNumLoop;
public:
  PrintFunc() : mNumLoop(0) {};
  void operator()(Ty arg)
  {
    ++mNumLoop;
    std::cout << arg << std::endl;
  }
  size_t GetNumberOfLoop() const { return mNumLoop; };
};

int main();
{
  std::array<double, 10> data;
  for( size_t i = 0; i < data.size(); ++i)
  {
    data[i] = i;
  }
  PrintFunc pf = std::for_each( data.begin(), data.end(), PrintFunc() );

  std::cout << "Number of Loop is " << pf.GetNumberOfLoop() << std::endl;
  return 0;
}

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー

チュートリアル

アルゴリズム(数学)

並列計算

STL

#include<memory> #include<string> #include<sstream> #include<algorithm> #include<functional> #include<numeric>

Media Foundation

【メニュー編集】
Wiki記法ガイド

メンバーのみ編集できます