模板函数参数+operator()+for_each这个语法没看懂
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
template <typename elementType>
struct DisplayElement
{
void operator () (const elementType& element) const
{
cout << element << endl;
}
};
int main(int argc, char *argv[])
{
vector<int> vecIntegers;
vecIntegers.resize(10);
for_each ( vecIntegers.begin () // Start of range
, vecIntegers.end () // End of range
, DisplayElement <int>() ); // Unary function object
return 0;
}
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
template <typename elementType>
struct test2
{
void display(const elementType& element) const
{
cout << element << endl;
}
};
int main(int argc, char *argv[])
{
vector<int> vecIntegers;
vecIntegers.resize(10);
for_each ( vecIntegers.begin () // Start of range
, vecIntegers.end () // End of range
, &test2 <int>::display ); // 报错
return 0;
}
template <typename elementType>
struct test2
{
static void display(const elementType& element)
{
cout << element << endl;
}
};
test2<int> a;
for_each ( vecIntegers.begin () // Start of range
, vecIntegers.end () // End of range
, bind1st(mem_fun(&test2<int>::display),&a)); // Unary function object
for_each ( vecIntegers.begin () // Start of range
, vecIntegers.end () // End of range
, bind(mem_fn(&test2<int>::display),test2<int>(),placeholders::_1)); // Unary function object