vector中存放函式指標

比不了就不比發表於2014-05-09

1編寫4個函式,分別對兩個int值執行加、減、乘、除運算使用vector物件中儲存只想這些函式的指標。

#include<iostream>
#include<vector>
using namespace std;

int fun1(int x,int y);
int fun2(int x,int y);
int fun3(int x,int y);
int fun4(int x,int y);
int main()
{
    vector<int(*)(int,int)> v;//vector<decltype(fun1)*> v;
    v.push_back(fun1);
    v.push_back(fun2);
    v.push_back(fun3);
    v.push_back(fun4);
    cout<< v[0](1,2)<<endl;
    cout<<v[1](1,2)<<endl;
    cout<<v[2](1,2)<<endl;
    cout<<v[3](1,2)<<endl;
    return 0;
}
int fun1(int x,int y)
{
    return (x+y);
}
int fun2(int x,int y)
{
    return (x-y);
}
int fun3(int x,int y)
{
    return (x*y);
}
int fun4(int x,int y)
{
    return (x/y);
}
執行:

[root@localhost C++ primer]# vim func.cpp
[root@localhost C++ primer]# g++ -o func func.cpp -std=c++11
[root@localhost C++ primer]# ./func
3
-1
2
0



相關文章