64,680
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <vector>
using namespace std;
auto l1 = [](double d) { std::cout << d << std::endl; };
auto l2 = [](double d) { std::cout << d*d << std::endl; };
int main()
{
vector<decltype(l1)> lambda_arr;
lambda_arr.push_back( ( l1 ) );
lambda_arr.push_back( ( l2 ) );
for ( auto i = lambda_arr.begin(); i != lambda_arr.end(); ++i )
i( 2.2 );
return 0;
}
#include <iostream>
#include <vector>
#include <functional>
using namespace std;
void fn2(int b)
{
cout << b*b << endl;
}
struct fn3
{
void operator()(int c)
{
cout << c*c*c << endl;
}
};
int main()
{
std::function<void(int)> fn=[](int a){cout << a << endl;};
vector<std::function<void(int)> > v;
v.push_back(fn);
v.push_back(fn2);
v.push_back(fn3());
v.push_back([](int d){cout << d*d*d*d << endl;});
for (auto iter=v.begin(), end=v.end(); iter!=end; ++iter)
(*iter)(2);
system("PAUSE");
return 0;
}